如何使用下面定义的类?

Vex*_*toR 1 c++ class

class A{
 public:
 B b;
};

class B{
 public:
 A a;
};
Run Code Online (Sandbox Code Playgroud)

我不能写A类"B b",因为下面定义了B类.有什么方法可以使它工作吗?

谢谢

Eri*_*rik 7

这是不可能的.您需要在其中一个类中使用指针或引用.

class B; // forward declare class B
class A {
public:
  B * b;
};

class B {
public:
  A a;
};
Run Code Online (Sandbox Code Playgroud)

至于为什么不可能:A包含一个B包含一个A包含一个B ...递归没有结束.

如果您习惯于所有对象变量都是指针/引用的语言(例如java),请注意c ++中不是这种情况.当你编写class A { public: B b; };一个完整B嵌入到A中时,它不会在A中引用.在C++中你需要明确指出你想要一个reference(B & b;)或一个指针(B * b;)