从我完成C++开始已经很长时间了,而且我正遇到一些引用对方的类的麻烦。如何声明相互引用的类?
现在,我有这样的事情:
啊
class a
{
public:
a();
bool skeletonfunc(b temp);
};
BH
class b
{
public:
b();
bool skeletonfunc(a temp);
};
由于每一个需要另外一个参考,我发现我做不到一个#包括在顶部彼此,或者我最终在与包括的怪异循环。
那么我怎样才能让a
可以使用b
,反之亦然,而不会产生周期性的#include问题?
谢谢!
请确保您注意,您需要参考使用指针或引用任何前瞻性声明的类型,本例所示(B&温度)。 – 2010-03-23 20:56:18
不,原始声明(带有传值语义)将被编译。在方法定义之前,您需要完整的类声明,但不要声明方法签名:'class a; void f(a); class a {}; void f(ax){...'参见http://stackoverflow.com/questions/389957/forward-declaration-of-a-base-class/390124#390124 – 2010-03-23 21:03:33
@大卫:我编辑得更加明确。 – 2010-03-23 21:11:23