我想定义两个类,A 和 B。A 有一个数据成员,它是 B 类对象并且在类内初始化。A 也有一个方法来检索此 B 类型数据成员中的值,并且此方法将被声明为 B 中的友元方法。这是我的代码:
class A{
public:
int getBValue();
private:
B b=B(1);
};
class B{
public:
friend int A::getBValue();
B(int i):value(i){}
private:
int value;
};
int A::getBValue(){
return b.value;
}
不出所料,由于 A 类定义中的未知类型 B,编译失败了。我曾尝试在源代码中交换 A 和 B 的定义,结果更糟。有没有办法解决 A 和 B 之间的交叉引用问题?