解決MFC中兩個類互相包含標頭檔案所導致的錯誤

2021-07-28 12:18:06 字數 675 閱讀 3090

這個問題簡單但是又容易犯錯,當**出現錯誤的時候讓人非常的懊惱;

比如有兩個類:cleftview和cimplicitmodelview兩個類,現在有這樣的需求需要在兩個類中都呼叫對方的函式,所以就在cleftview.h中加上#include "cimplicitmodelview",在cimplicitmodelview.h中加上#include "cleftview.h",

但是當我們興高采烈地的去編譯時,會出現缺少分號的錯誤,但是當我檢查了很久的**,發現並沒有出現缺少分號,這個原因是因為類與類之間的標頭檔案互相包含所導致的。

解決方法就是:

在兩個類的標頭檔案中進行類先導宣告,然後在各自類的.cpp檔案中進行標頭檔案的包含

例如:(1)在cleftview.h中進行cimplicitmodelview的類先導宣告class cimplicitmodelview;(有分號),然後在cleftview.cpp檔案中包含cimplicitmodelview類的標頭檔案,#include"cimplicitmodelview.h"

(2)在cimplicitmodelview.h中進行cieftview的類先導宣告class cleftview;(有分號),然後在cimplicitmodelview.cpp檔案中包含cieftview類的標頭檔案,#include"cieftview.h"

這樣,就可以實現在兩個類中進行互訪問

兩個類互相包含的問題

今天在寫自己專案時碰到兩個類互相包含的問題,查詢了下網上的資料,整理如下 在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a class b 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義...

兩個類標頭檔案互相包含

c 中兩個類的標頭檔案互相包含問題 csdn部落格 我們知道,當乙個類 設類a 中包含另乙個類 設類b 的物件時,必須在該檔案中包含另乙個類的標頭檔案,如果兩個類都互用到了對方的物件,理論上就要互相包含標頭檔案,但是這樣是不可取的。貼出 如下 這樣是無法通過編譯的,其原因是它們的標頭檔案互相包含了,...

兩個類的標頭檔案互相包含

我做任務的時候遇到了兩個類都互相包含對方的物件的問題,本來是有錯誤的,但經過我一番改動,兩個標頭檔案互相包含同時,每個標頭檔案都含有令乙個類的前置宣告。雖然最後執行正確,但是方法不太正確,我寫的程式打包放在了碼雲我的私密倉庫裡,在網上看到了比較正確的方法記錄下來。我們知道,當乙個類 設類a 中包含另...