[class.access.nest] (original) (raw)

11 Classes [class]

11.9 Member access control [class.access]

11.9.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_]