适当使用朋友?用于操作特定类型对象的Container类

时间:2010-07-19 00:39:15

标签: c++ collections private friend

假设您有FooManager来管理多个Foo类型的对象。 FooManager需要查看其Foo的某些部分来评估其当前状态。在我使用Foo中的一些访问器来查看这些部分之前,直到我意识到FooManager是实际使用这些部分的唯一类。我决定让FooManager成为Foo的朋友。这导致大多数班级Foo变为私人。

这是朋友的合适使用吗?我的理由是它有助于封装,因为虽然它可以FooManager完全访问Foo的内部,但它完全阻止了对其他所有内容的访问。

1 个答案:

答案 0 :(得分:1)

除非有一种不同的,更清洁的方式来实现你想要实现的目标,否则这听起来像是一种公平的方法。

关于封装,请参阅:http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2