84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
class A { A(); void func(); }; class B { A a; int getX() {return x;} private: int x; };
请问怎么做才能让A的func()访问到x?因为我想让a变量的func()访问x成员。
本来说想在A的func()里访问B的x的,但是后来发现可以在B加一个函数访问A的。包含可以访问被包含,被包含不可以访问包含,一般应该是这样。
也是C++初学,把A声明为B的成员有其他用途么?如果没有直接把B声明为A的友元函数就可以通过A访问B的成员了,包括私有成员。
请问怎么做才能让A的func()访问到x? 因为我想让a变量的func()访问x成员。
请看《C++ Primer》7.2.1节和7.3.4节,关于友元(Friendship)的讲解。
class B { friend void A::func(); // . . . };
本来说想在A的func()里访问B的x的,但是后来发现可以在B加一个函数访问A的。
包含可以访问被包含,被包含不可以访问包含,一般应该是这样。
也是C++初学,把A声明为B的成员有其他用途么?如果没有直接把B声明为A的友元函数就可以通过A访问B的成员了,包括私有成员。
请看《C++ Primer》7.2.1节和7.3.4节,关于友元(Friendship)的讲解。