これと同様の質問が以前に行われたことは知っていますが、調査を行った後でも、円形ヘッダーのインクルードについて質問があります。
//FooA.h
#ifndef H_FOOA
#define H_FOOA
#include "foob.h"
class FooA{
public:
FooB *fooB;
};
//FooB.h
#ifndef H_FOOB
#define H_FOOB
class FooA;
class FooB{
public:
FooA *fooA;
};
今、私が2つの循環依存関係を持っている場合、これは、stackoverflowの人々が問題を回避するのを見た方法です。これに関する私の唯一の問題は、main.cppに最初にfooa.hを含め、次にfoob.hを含める必要があることです。
//main.cpp the right way
#include "fooa.h"
#include "foob.h"
//main.cpp that will surely get a compile error
#include "foob.h"
#include "fooa.h"
今私の質問は、「main.cppにヘッダーファイルをインクルードする順序を気にしない方法でこれらのクラスを前方宣言する方法はありますか?」です。