Вложенный класс является членом и поэтому имеет те же права доступа, что и любой другой член. Члены включающего класса не имеют специального доступа к членам вложенного класса; access rules должны соблюдаться обычные правила. [ Example:
class E { int x; class B { }; class I { B b; // OK: E::I can access E::B int y; void f(E* p, int i) { p->x = i; // OK: E::I can access E::x } }; int g(I* p) { return p->y; // error: I::y is private } };
— end example ]