C++ 如何创建在不同文件中相互使用的类?

C++ 如何创建在不同文件中相互使用的类?,c++,class,C++,Class,例如,我有一个a级防御 class A { ... } 在a.h B.h.中的B class B { ... } 在a.h中我需要#包括“b.h”,在b.h中我需要#包括“a.h”,但这是编译器的递归错误 我可以在一个文件中用这样的预防御来欺骗它 class A; class B { ... } class A { ... } 但为了清楚起见。。。我想将它们彼此分开,我如何才能做到这一点?向前声明是一种方法: //B.h class

例如,我有一个a级防御

class A {
 ... 
 }
在a.h

B.h.中的B

class B {
 ... 
 }
在a.h中我需要
#包括“b.h”
,在b.h中我需要
#包括“a.h”
,但这是编译器的递归错误

我可以在一个文件中用这样的预防御来欺骗它

class A;
class B {
     ... 
     }
class A {
     ... 
     }

但为了清楚起见。。。我想将它们彼此分开,我如何才能做到这一点?

向前声明是一种方法:

//B.h
class A;
class B
{
};


请注意,如果您需要完整类型,也就是说,相应的其他类需要
a
B
类型的数据成员(方法参数、返回类型、指针或引用适用于不完整的类型),则这将不起作用.

当您将其中一个类包含到另一个标头中时,该类中至少有一个可以具有完整类型。@iammilind可以,但如果可能的话,应首选前向声明。
//A.h
class B;
class A
{
};