【发布时间】:2010-10-06 00:35:53
【问题描述】:
我在复习我的 C++(我是一名 Java 开发人员)时遇到了我已经忘记了一段时间的 friend class 关键字。这只是厨房水槽的一部分,还是有充分的理由这样做,而不仅仅是香草吸气剂?我理解不同之处在于它限制了谁可以访问数据,但我想不出有必要这样做的场景。
注意:我看到了一个类似的问题,但我特别想问的是,这只是一个高级功能,除了让人们在看你的代码之前感到困惑,直到他们意识到你在做什么之外,它并没有增加任何真正的价值?
【问题讨论】:
-
虽然朋友类显然是有用的,否则我不会将它们包含在语言规范中,但我倾向于将它们视为一种设计气味。它们通常向我表明我应该再次查看我的类层次结构,而且我通常发现我可以更优雅地重组它并消除对朋友类的需要。