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