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)的講解。