クラス A と B があり、どちらもヘッダー ファイルにインクルード ガードがあります。1つは次のとおりです。
#ifndef A_H
#define A_H
#include "B.h"
class A
{
B b;
};
#endif
そしてもう1つは:
#ifndef B_H
#define B_H
#include "A.h"
class B
{
A a;
};
#endif
次に、次の main.cpp でテストします。
#include "A.h"
int main()
{
A a;
}
コンパイルエラーは次のとおりです。
# make main
g++ main.cpp -o main
B.h:8: error: ‘A’ does not name a type
ポインター/参照と前方宣言を使用する以外に、この状況に対する解決策はありますか?