"Private" nested classes that are never used inside the enclosing class are usually dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.
* classes with a name starting with a single underscore (ex: ``++_MyClass++``) should be seen as non-public and might change without prior notice. They should not be used by third-party libraries or software. It is ok to use those classes inside the library defining them but it should be done with caution.
* "class-private" classes are defined inside another class, and have a name starting with at least two underscores and ending with at most one underscore. These classes' names will be automatically mangled to avoid collision with subclasses' nested classes. For example ``++__MyClass++`` will be renamed as ``++_classname__MyClass++``, where ``++classname++`` is the enclosing class's name without its leading underscore(s). Class-Private classes shouldn't be used outside of their enclosing class.