【问题标题】:Appropriate use of friend? Container class designed to manipulate objects of specific type适当使用朋友?用于操作特定类型对象的容器类
【发布时间】:2010-07-19 00:39:15
【问题描述】:

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

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

【问题讨论】:

    标签: c++ collections private friend


    【解决方案1】:

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

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

    【讨论】:

    • 我实际上使用了一个人发布的律师 - 客户成语,但不幸的是他的回答消失了。哦,好吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2010-11-29
    • 1970-01-01
    • 2012-12-04
    • 2012-05-15
    • 2016-10-29
    • 1970-01-01
    相关资源
    最近更新 更多