【发布时间】:2010-10-13 08:20:39
【问题描述】:
【问题讨论】:
-
就像在现实生活中一样:存在单向关系,即使你认为它们是相互的 :)
-
这个问题让我笑了:D
-
Friend 已经是一个有问题的结构,从访问的角度来看可能会导致代码不整洁。至少以一种方式降低保护受到损害的程度
【问题讨论】:
class bar
{
private:
void barMe();
};
class foo
{
private:
void fooMe();
friend bar;
};
在上面的例子中 foo 类不能调用 barMe() 您需要以这种方式定义类以便朋友是相互的:
class foo; // forward
class bar
{
private:
void barMe();
friend foo;
};
class foo
{
private:
void fooMe();
friend bar;
};
【讨论】:
一般来说,朋友关系只是单向的——但没有什么可以阻止你声明 A 类是 B 类的朋友,B 类是 A 类的朋友。所以可以建立相互关系
【讨论】: