天天看點

Solve Error: 'has incomplete type', foward declaration of 'class x'

在C++的OOB程式設計中,有時候我們會遇到這樣的錯誤Error: 'has incomplete type',forward declaration of 'class x',那麼是什麼原因引起的這個問題呢,我們首先來看下面這段代碼:

在上面這段代碼中,類A和類B互相含有對方作為自己的私有成員變量,那麼不管誰寫在前面,如果不事先聲明另一個的話,都會報錯找不到定義,那麼我們事先聲明A就沒事了嗎,也不是,像上面那樣B中聲明A的對象還是會出錯,因為編譯器不知道A的定義,無法生成類A的執行個體,是以會報錯。一種改正方法是把對象執行個體變成對象指針,如下所示:

繼續閱讀