我有两个类,它们都使用其他类,例如:
// class1.h
class Class1;
#include "class2.h"
class Class1 {
public:
static Class2 *C2;
...
};
// class2.h
class Class2;
#include "class1.h"
class Class2 {
public:
static Class1 *C1;
...
};
当我像上面的例子一样定义它时,它可以工作(我也有一些#ifndef
可以避免无限的标题重复)。但我也想在我的类中添加一些内联函数。我在这里读到我应该将内联函数的定义放在头文件中,因为如果我将它们放在 cpp 文件中并想从其他 cpp 文件中调用它们,它将不起作用(当我这样做时,我在链接)。但这里的问题是这样的:
// class1.h
...
inline void Class1::Foo() {
C2->Bar();
}
我收到错误:无效使用不完整类型“struct Class2”。
那么我该怎么做呢?