Inner Classes vs. Nested Classes
An inner class in Java is linked to a specific instance of surrounding class, and is permitted access to data fields and methods in this object.
A nested class in C++ is simply a naming device; it restricts the visibility of features associated with the inner class, but otherwise the two are not related.