當兩個標頭檔案互相包含的時候

2021-06-18 07:31:37 字數 945 閱讀 1430

當我們在寫程式的時候,由於模擬較多,會不小心出現兩個類之間出現互相包含的情況,如此一來,就出現了下面的錯誤資訊:

>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error c2143: 語法錯誤 : 缺少「;」(在「*」的前面)

1>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

1>c:\users\administrator\documents\visual studio 2010\projects\mpf\mpf\mpfdlg.h(33): error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設 int

那麼,要解決這個問題,我們就要根據提示的錯誤資訊,找到那個物件對應的類的標頭檔案中,找到互相包含的那個標頭檔案,刪除,就可以解決這樣的問題。

如我這裡:

在 "mpfdlg.h「中

#pragma once

#include

#include "thread2.h"包含了這個標頭檔案

#include "player.h"

#include "afxtempl.h "

#include "songsitem.h"

下面在那個標頭檔案中:

在"thread2.h"中:

#pragma once

#include "afxcmn.h"

#include "songsitem.h"

#include "mpfdlg.h包含了這個標頭檔案

#include "thread2.h"

如此就造成了文章開頭出現的錯誤了。

兩個標頭檔案相互包含的問題

大家知道c 檔案一般包含.cpp檔案和.h檔案,當兩個類相互在標頭檔案中包含對方的標頭檔案的時候編譯器會報錯的。如下例子 class object1 的標頭檔案object1.h include object2.h class object1 class object2 的標頭檔案object2.h...

兩個類標頭檔案互相包含

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

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

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