C++结构相互依赖

Min*_*ope 1 c++ syntax struct

您好我在相同的Header文件中声明了需要彼此的结构.

struct A; // ignored by the compiler
struct B{
  A _iNeedA; //Compiler error Here
};

struct A { 
  B _iNeedB;
};
Run Code Online (Sandbox Code Playgroud)

这项工作正常

class A;
class B{
  A _iNeedA;
};

class A { 
  B _iNeedB;
    };

// everything is good
Run Code Online (Sandbox Code Playgroud)

非常感谢你!

Kon*_*lph 7

这不起作用:Acontains Bcontains Acontains Bcontains .... 在哪里停?

您可以使用指针来建模循环依赖项:

class A;

class B {
    A* _iNeedA;
};

class A {
    B* _iNeedB;
};
Run Code Online (Sandbox Code Playgroud)

现在这些类不相互包含,只是相互引用.

此外,您需要注意不能使用尚未定义的内容:在上面的代码中,您已经在定义之前声明了 .所以,它的优良声明指针,以在.但是在定义它之前你还不能使用它.ABAB A