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值?它不允许取消引用指针。另外,我无法理解如何使用这个相互递归的类。< / p>
答案 0 :(得分:1)
您正在访问它。您的程序失败,因为您尝试将class B
类型的对象发送到对象operator <<
的{{1}}。当然,将军cout
不知道如何处理这种输入。如果要打印对象的名称成员,则应将其发送到operator <<
而不是整个对象:operator <<
。
修改:感谢@AlgirdasPreidžius发现拼写错误。