Friend 类及其所有后代

Posted

技术标签:

【中文标题】Friend 类及其所有后代【英文标题】:Friend class and all its descendants 【发布时间】:2009-10-02 11:12:03 【问题描述】:

假设我有一个带有几个子类(B、C 和 D)的 A 类。我需要 B C 和 D 来访问 E 类中的一些受保护成员。是否有可能一次性使 B、C 和 D 成为 E 的朋友而不必列出所有成员?

我试过了:

class E 

    friend class A;

    ...

;

但这不起作用。

谢谢

【问题讨论】:

请参阅parashift.com/c++-faq-lite/friends.html,了解为什么友谊不是继承、传递或互惠的。 【参考方案1】:

您可以将受保护的访问器函数放在 A 中,并让 A 成为 E 的朋友。这样,A 的所有派生类都可以通过访问器函数访问 E 的成员。

【讨论】:

以上是关于Friend 类及其所有后代的主要内容,如果未能解决你的问题,请参考以下文章

学校(School)主要有3大角色:学校(School),讲师(Teacher),学员(Student)。请用Python语言简要实现这些类及及其属性,以及它们之间的关系。

Java异常类及处理

IntelliJ IDEA:有没有办法列出一个类及其父类实现的所有接口?

QT学习_常用类及信号和槽

继承及其应用

移除元素