VS錯誤C3646的可能錯誤

2021-09-28 15:44:18 字數 423 閱讀 2932

1.迴圈引用

在分離式編譯中,我們往往習慣將不同的類或者函式分別寫在不同的函式中,提高工作效率。但如果在使用時出現兩個類分別在兩個不同的檔案中編寫,並且相互引用,則會出現迴圈引用,引發此錯誤。

舉例:tire.h/tire.cpp和auto.h/auto.cpp 在tire.h中include auto.h,並定義了乙個auto的object,然後在auto.h中又include了tire.h

解決方案:在報錯的那個.**件的類定義前加上class宣告呼叫的類(即class 類)。

2.語法錯誤

此問題大多因為粗心而導致,比如在某個成員函式中把分號;寫成了中文分號;,將會出現此類錯誤。

解決方案:修改分號

3.類的順序錯誤

如果乙個類的成員中包含另乙個類,則被包含的類的生命一定要在包含的類之前。結構體、列舉相同

錯誤C3646「name」 未知重寫說明符 問題

在用多檔案編譯來寫乙個程式時,遇到了乙個錯誤 錯誤c3646 name 未知重寫說明符 於是我就去某搜尋引擎上搜尋一下前輩們對這個錯誤的心得 綜合網上的經驗我總結了一下出現這個錯誤有可能的幾種情況 1 標頭檔案之間的迴圈引用 比如 在a.h中包含了b.h並建立了乙個b類物件,然後在b.h中又包含了a...

VS的錯誤經歷

1.link 1169 h檔案有函式實現時,報 link 1169 參考 使用extern關鍵字 再看 2.c4275 在乙個dll匯出類 該類繼承於乙個非dll匯出類 的實現檔案中匯入另外乙個dll,參考msdn 解決方法 3.warning c4800 強制型別轉換,帶來精度缺失或者效能警告 4...

vs 下的 斷言錯誤

出現 debug assertion failed錯誤 是因為你程式中的斷言失敗了,也就是這一句話 assert pactivateview this assert是system.diagnostics.debug類的乙個靜態方法,只在debug的狀態下起作用,如果程式是編譯成release的,那麼...