首頁  >  問答  >  主體

c++ - 被包含类的函数怎么访问包含类的成员或函数

class A
{
    A();
    void func();
};

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

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

巴扎黑巴扎黑2714 天前559

全部回覆(3)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:23:20

    本來想在A的func()裡訪問B的x的,但是後來發現可以在B加一個函數訪問A的。
    包含可以存取被包含,被包含不可以存取包含,一般應該是這樣。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:23:20

    也是C++初學,把A宣告為B的成員有其他用途麼?如果沒有直接把B宣告為A的友元函數就可以透過A存取B的成員了,包括私有成員。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:23:20

    請問怎麼做才能讓A的func()存取到x? 因為我想讓a變數的func()存取x成員。

    請看《C++ Primer》7.2.1節和7.3.4節,關於友元(Friendship)的講解。

    class B
    {
        friend void A::func();
        // . . .
    };

    回覆
    0
  • 取消回覆