首页 > 解决方案 > 从朋友类的朋友功能访问私人成员

问题描述

我正在尝试从朋友函数访问一个类的私有成员,但我不断收到关于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;
}

标签: c++class

解决方案


推荐阅读