我正在開發使用Visual Studio 2010中C++程序我有這些類定義&頭文件:
SH:循環類的依賴,而包括C頭文件++
class s : oe {
...
};
日:
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
,所以我們必須包括o.h
oe.h
之前,&我們也參考o.h
類的',所以我們必須包括s.h
o.h
之前,但我們不能這樣做,因爲s.h
需要oe.h
& oe.h
需求o.h
& o.h
需求s.h
!
正如你所看到的,在類依賴週期&中存在某種循環,所以我無法編譯該項目。如果我SH &之間移除日& oe.h的依賴性,這個問題就會解決(這裏是stdafx.h
這個狀態):
#include "s.h"
#include "t.h"
#include "o.h"
#include "oe.h"
,但我必須使用所有給定的依賴&我不能刪除依賴任何人。任何想法?
[頭文件之間的循環依賴關係]可能的重複(http://stackoverflow.com/questions/2089056/cyclic-dependency-between-header-files) – RedX
搜索forwad聲明和循環頭依賴。關於stackoverflow有很多問題。 – RedX