c++ - 从朋友类的朋友功能访问私人成员
问题描述
我正在尝试从朋友函数访问一个类的私有成员,但我不断收到关于x
成为B
.
我知道一个特定的解决方案可能只是friend
里面的函数B
,但我想要一个更通用的解决方案,以防我需要更多A
需要访问B
但不想friend
在 B 中显式显示它们的朋友函数。
#include <iostream>
using namespace std;
class B {
private:
int x = 10;
friend class A;
};
class A {
private:
B b;
public:
friend ostream& operator<< (ostream&, A&);
};
ostream& operator<< (ostream& out, A& a){
out << a.b.x << endl;
return out;
}
int main() {
A a;
cout << a;
return 0;
}
解决方案
推荐阅读
- sql - 在 SQL 中根据条件创建变量?
- c++ - 无法理解 C++ 指针中的输出。(使用指针中的循环)
- ios - 如何使用 module.modulemap 在 swift 框架中导入 objC 框架?
- python - 如何保存使用子进程循环python脚本的脚本的输出?
- python - (Python Selenium) 关闭浏览器时自动关闭Webdriver
- oracle - 从Oracle中的子表中选择计数
- python - 有没有办法从个人列表中找到最佳个人,然后将其附加到列表中?
- python - 如何为玩家分配分数并在轮到玩家时从他们的分数中相应地添加/删除分数
- python - 键盘输入引发类型错误
- javascript - Highcharts - 如何在仪表图的两个刻度盘之间显示箭头?