class B;
class A
{
public:
string name;
B* box;
};
class B
{
public:
string name;
A appple;
};
int main()
{
A theobjectA;
theobjectA.name = "lalal";
B* bbb = new B;
theobjectA.box = bbb;
bbb->name = "asasasdd";
cout<<theobjectA.name<<*(theobjectA.box);
}
我想知道为什么我不能访问类A中的box值?不允许取消对指针的引用。此外,我无法理解如何使用这种相互递归的类。
最佳答案
您正在访问它。程序失败,因为您试图将class B
类型的对象发送到对象operator <<
的cout
。自然,一般operator <<
不知道如何处理此类输入。如果要打印对象的名称成员,则应将其发送到operator <<
而不是整个对象:theobjectA.box->name
。
编辑:感谢@AlgirdasPreidžius注意到拼写错误。