C++ 如何创建在不同文件中相互使用的类?
例如,我有一个a级防御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
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
{
};