class foo
{
bar b;
someFunction()
{
b.alphaObj->someFunctionOfAlpha();
}
};
class bar
{
friend class foo;
// many more friends
private:
alpha *alphaObj;
};
我如何删除朋友依赖关系而又不让私有成员使用getter和setter方法。我知道朋友类可以帮助增强封装性,但是我的类中定义了很多朋友类,这些私有类向所有人公开。因此,我正在考虑一种更好的方法,我们将不胜感激。
与您的friend
独立发行此>
b.alphaObj->someFunctionOfAlpha();
不是最佳设计。您应该致电:
b.someFunctionOfAlpha();
现在也很明显如何删除朋友:
class bar
{
public:
void someFunctionOfAlpha() { alphaObj->someFunctionOfAlpha(); }
private:
alpha *alphaObj;
};