假设您有FooManager
来管理多个Foo
类型的对象。 FooManager
需要查看其Foo
的某些部分来评估其当前状态。在我使用Foo
中的一些访问器来查看这些部分之前,直到我意识到FooManager
是实际使用这些部分的唯一类。我决定让FooManager
成为Foo
的朋友。这导致大多数班级Foo
变为私人。
这是朋友的合适使用吗?我的理由是它有助于封装,因为虽然它可以FooManager
完全访问Foo
的内部,但它完全阻止了对其他所有内容的访问。
答案 0 :(得分:1)
除非有一种不同的,更清洁的方式来实现你想要实现的目标,否则这听起来像是一种公平的方法。
关于封装,请参阅:http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2。