您好我在相同的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)
非常感谢你!
这不起作用:Acontains Bcontains Acontains Bcontains .... 在哪里停?
您可以使用指针来建模循环依赖项:
class A;
class B {
A* _iNeedA;
};
class A {
B* _iNeedB;
};
Run Code Online (Sandbox Code Playgroud)
现在这些类不相互包含,只是相互引用.
此外,您需要注意不能使用尚未定义的内容:在上面的代码中,您已经在定义之前声明了 .所以,它的优良声明指针,以在.但是在定义它之前你还不能使用它.ABAB A