我有一個問題,我有幾個頭文件,我需要包括他們每個人在對方。顯然,這是不能做到的,因爲當我編譯時,會拋出錯誤「include nested too deeply」 - 因爲這基本上要求編譯器輸入一個無限循環。頭文件和多個類的用法(編輯:轉發聲明)
我可以使用void指針來修復它,但是這對我來說似乎是不好的編碼習慣。
這裏是什麼,我試圖做的,爲了幫助理解的例子:
文件-A:
#include "File-B"
#include "File-C"
class A
{
public: B* p_B;
public: C* p_C;
};
文件-B:
#include "File-A"
#include "File-C"
class B
{
public: A* p_A;
public: C* p_C;
};
文件-C:
#include "File-B"
class C
{
public: B* p_B;
};
這只是顯示在哪裏e ach類聲明是必要的。當然有更好的解決方案void*
。
編輯:我已經使用包括衛兵,這段代碼只是爲了幫助你看看我想要做什麼。
你可能已經切換了。首先使用前向聲明,然後包含這些文件。當訪問或引用其他類中的任何內容時,類定義是必需的。 – 2013-02-24 19:52:20