我还没有研究出具体的案例。但是我即将着手编写一些我认为最终会需要它的代码;所以我想知道是否:
- 两个类可以互相成为 friend ;以便他们可以自由访问私有(private) 和 protected 另一方成员(我相信答案是肯定的,当然我 可以简单地尝试一下!)。任何详细的引用资料或其他带有答案的问题链接 也很受欢迎。我知道前向声明并包含保护编译器 前置指令及其使用。我的问题与语义更相关 C++ 语言在这种可能性方面可以提供什么 相互友元以及如何正确使用它。
- 这是普遍推荐的吗?人们是否定期采用这种设计? 在什么情况下这是推荐的设计(最好有一些 示例)。
最佳答案
你们可以拥有相互的友元:
class A {
friend class B;
};
class B {
friend class A;
};
这是否有意义完全取决于您要解决的问题。在某些情况下它绝对有意义。
我当前项目中唯一利用相互友元的示例是容器实现:容器类是其迭代器类的 friend ,反之亦然。
关于c++ - 两个类(class)可以成为 friend 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208833/