[class.access.nest] (original) (raw)
11 Classes [class]
11.8 Member access control [class.access]
11.8.8 Nested classes [class.access.nest]
A nested class is a member and as such has the same access rights as any other member.
The members of an enclosing class have no special access to members of a nested class; the usual access rules ([class.access]) shall be obeyed.
[Example 1: 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_]