Visual Studio2010を使用してC++プログラムを開発しています。これらのクラス定義とヘッダーファイルがあります:
sh:
class s : oe {
...
};
th:
class t : oe {
...
};
oe.h:
class oe {
...
o getO();//we reference to class 'o' in oe.h, so we must include o.h begore oe.h
};
& ああ :
class o {
...
s getS();//we reference to class 's' in o.h, so we must include s.h begore o.h
};
問題は、のクラス'o'を参照しているため、の前にoe.h
含める必要があります。また、のクラス' s'を参照しているため、前に含める必要がありますが、needs &needs &needs !
ご覧のとおり、クラスの依存関係のサイクルにはある種のループが存在するため、プロジェクトをコンパイルできません。shとthとoe.hの間の依存関係を削除すると、問題は解決します(これがこの状態の場合です):o.h
oe.h
o.h
s.h
o.h
s.h
oe.h
oe.h
o.h
o.h
s.h
stdafx.h
#include "s.h"
#include "t.h"
#include "o.h"
#include "oe.h"
しかし、指定されたすべての依存関係を使用する必要があり、依存関係を削除することはできません。何か案が?