嵌套友元问题求解。
位置:<thing in c++>,第三章 3.3.1嵌套友元
文中说:一个嵌套的struct并不能自动的获得存取私有的权限。
<c++ primer>18.4 嵌套类
文中说:外围类对嵌套类的成员没有特殊的访问权限,并且嵌套类对外围类也没有特殊访问权限。
也就是说:外围类对不能访问嵌套类的private,嵌套类也一样。
class Obj_A{public: Obj_A() { a = 10; } class Obj_B { friend class Obj_A; //外围类要想访问嵌套类private成员必须声明为friend public: Obj_B() { a = 20; } void f(Obj_A a) { a.a = 1; //嵌套类可以随意访问外围类的private成员 } private: int a; }; void f(Obj_B b) { b.a = 1; }private: int a;};