访问递归类的成员变量

时间:2015-12-05 10:52:25

标签: c++ class recursion

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>

1 个答案:

答案 0 :(得分:1)

您正在访问它。您的程序失败,因为您尝试将class B类型的对象发送到对象operator <<的{​​{1}}。当然,将军cout不知道如何处理这种输入。如果要打印对象的名称成员,则应将其发送到operator <<而不是整个对象:operator <<

修改:感谢@AlgirdasPreidžius发现拼写错误。