c++ - 被包含类的函数怎么访问包含类的成员或函数
巴扎黑
巴扎黑 2017-04-17 13:21:20
0
3
619
class A
{
    A();
    void func();
};

class B
{
    A a;
    int getX() {return x;}
private:
    int x;
};

请问怎么做才能让A的func()访问到x?
因为我想让a变量的func()访问x成员。

巴扎黑
巴扎黑

全部回覆(3)
伊谢尔伦

本來想在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();
    // . . .
};
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板