私には2つのクラスがあり、どちらも他のクラスの一部を使用しています。例:
// 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' の無効な使用。
どうすればそれができますか?