2012-03-29 73 views
0

我已經在C++中聲明瞭DynArray var_name,但在編譯時給我一個錯誤「不完整的類型不允許」 我試圖搜索,但沒有提供動態數組的示例。 任何人都可以請解釋錯誤? 謝謝。C++中的不完整類型

+5

你能告訴我們代碼嗎? – birryree 2012-03-29 01:19:55

+0

//temp.h 私有:DynArray the_array; //temp.cpp in constructor the_array.append(「hello」); – CamAd 2012-03-29 01:24:56

+0

@anjali:編輯你的答案,粘貼代碼,然後突出顯示代碼並按下'{}'按鈕縮進它,然​​後重新提交 – 2012-03-29 01:30:18

回答

0

「不完整的類型不允許」通常意味着一個類已經聲明,但沒有定義在需要完整定義的點上。

這有時是因爲在頭部循環依賴的,

類A的定義取決於B類的定義,反之亦然 - 導致阿包括BH,然後了Bh嘗試對包括阿但不能因爲頭文件保護已經被定義,所以它跳過,但隨後只得到A.

0

如果你在頭文件中定義C.h一個成員變量xC類的FWD DECL,你必須包括的頭(X.hC.h。但是,如果你只是存儲指向XC一員,那麼你就可以轉發聲明class X;聲明class C{...};然後在定義文件C.cpp,你必須包括X.h如果你訪問過的任何x成員之前。