自从我完成C ++以来已经很长时间了,而且我遇到了相互引用类的麻烦。
现在我有类似的东西:
A.H
class a
{
public:
a();
bool skeletonfunc(b temp);
};
b.h
class b
{
public:
b();
bool skeletonfunc(a temp);
};
由于每个人都需要引用另一个,我发现我不能在顶部做彼此的#include,或者我最终会在包含奇怪的循环中进行。
那么我怎样才能使a
可以使用b
而反之亦然而不会产生周期性的#include问题?
谢谢!
答案 0 :(得分:8)
您必须使用Forward Declaration:
A.H
class b;
class a
{
public:
a();
bool skeletonfunc(b temp);
}
但是,在许多情况下,这会强制您使用方法调用或成员变量中的引用或指针,因为您不能在两个类头中都有完整类型。如果必须知道类型的大小,则需要使用引用或指针。但是,如果只需要方法声明,则可以使用该类型。
答案 1 :(得分:2)