【发布时间】:2015-07-17 17:05:14
【问题描述】:
如果是这样,这在什么情况下会有用?
或者(我想是这样),为什么它绝对没用? (还有什么其他方法基本上涵盖了这种友谊所提供的能力,但是以一种更安全、更少泄露的方式?)
我几乎认为我需要这样的东西。最后我追求了一个完全不同的设计,使所有的类成员都是静态的。不过我还是很好奇。
【问题讨论】:
-
在基类中提供受保护的方法可以避免有这么多朋友。
-
缺少一个关键要素: 他们在访问什么?
-
@Quentin - 就我而言,我需要访问同级方法,所以如果
B和C派生自A,我需要从C::foo()调用B::foo()。在我的例子中,这些类封装了不同的算法(因此想到了策略模式......)但有时一种算法会使用另一种算法的大部分。然而,从B派生C似乎并不正确,因为C与B并没有真正的“is-a”关系。
标签: c++ derived-class c++03 friend-class