c++ 两个 类 相互引用

c++ Two Classes Refering To Each Other

我正在使用 C++。
我需要创建两个相互引用的 类。
像这样:

class A {
  private:
    B b; 
   //etc...
};
class B {
  private:
    A a; 
   //etc...
};

我该怎么做?
抱歉我的英语不好,谢谢你帮助我:)

即使在原则上你也不能这样做,因为单个 A 对象将包含一个 B,其中包含另一个 A,其中包含 另一个 B另一个 A ...

如果你只是想要一个引用,你可以简单地做

class B; // forward declaration

class A {
  B& b_;  // reference
public:
  explicit A(B& b) : b_(b) {}
};

class B {
  A a_;
public:
  B() : a_(*this) {}
};

现在每个 B 都包含一个 A,它指的是它所在的 B

但是请注意,在 A 的构造函数中,您实际上不能对 b(或 b_)做任何事情,因为它引用的对象尚未完成尚未创建自己。

指针也可以 - 当然 AB 都可以有引用而不是包含直接对象的 B