c ++如何正确声明另一个类的友元类方法

时间:2015-09-14 09:07:39

标签: c++ friend friend-function

请考虑以下示例。

class A
{
    int member;
};

class B
{
    A& a_ref;
    void manipulate()
    {
        a_ref.member++;
    }
};

现在,显然B::manipulate无法访问a_ref。我想(仅)class B允许(引用)A::member。我知道存在friend关键字,但我不知道如何正确使用它。我的意图是,我可以将B::manipulate实施改为此

int& A::only_B_can_call_this() // become friend of B somehow
{
    return member;
}

void B::manipulate()
{
    a_ref.only_B_can_call_this()++;
}

0 个答案:

没有答案