我对如何使用友元函数完成以下操作有点困惑。
假设我有一个类 A,其成员函数“f”将被声明为类 B 的朋友。
据我了解,正常的解决方案是这样的:
定义 A 类,仅声明未定义“f”
定义 B 类,包括“f”的朋友声明
定义'f'
现在,如果 A 类具有 B 类类型的数据成员或 B 类型元素的容器,如 vector < B >,该怎么办。
前向声明 B 类似乎有效(即没有编译器警告/错误),但我不确定它是否符合 C++11 标准。此外,这样的解决方案不允许我使用 B 类的构造函数为 A 的 B 类类型成员提供类内初始化程序。按照 C++11 完成所有这些的最佳方法是什么?
我尝试从标准本身中找到解决方案,但找不到提到这种情况。如果有人能指出我会很高兴。
PS我真的是一个初学者,所以请不要在你的答案中假设。不过我不介意详细的答案:)