请考虑以下示例。
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()++;
}