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

2021-06-06 11:31:43 字數 597 閱讀 9092

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

如下例子:

class object1 的標頭檔案object1.h

#include"object2.h"

class object1

class object2 的標頭檔案object2.h

#include"object1.h"

class object2

當你按照上面的格式寫的話,編譯器是肯定要報錯的。

解決辦法如下:

在object1的標頭檔案中這麼寫

#include"object2.h"

class object1

在object2的標頭檔案這麼寫

class object1

class object2

然後在object2的cpp檔案中新增

#include"object1.h"

在object2檔案裡面只是簡單的先引入了object1的宣告,而沒有引入實體,這樣就能解決標頭檔案相互包含的問題,雖然這種問題很少見,某些問題的確有標頭檔案相互包含的需求,所以這個問題一定要處理好。

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

當我們在寫程式的時候,由於模擬較多,會不小心出現兩個類之間出現互相包含的情況,如此一來,就出現了下面的錯誤資訊 c users administrator documents visual studio 2010 projects mpf mpf mpfdlg.h 33 error c2143 語法...

乙個標頭檔案包含的問題

foo.h foo.c mainfile.c foo.c 定義結構體 foo.h定義 mainfile.c 原因 mainfile.c中包含了foo.h,即有了typedef.定義了gf bitstream。但是,對於 tag bitstream的定義,卻是在foo.c 中定義的,所以包含了foo....

c 標頭檔案相互包含問題

c 中標頭檔案互相包含經常會出現編譯錯誤.示例 如下 h ifndef a h define a h include b.h includeusing namespace std class a endif a h a.cpp include a.h a a a a int a getvala vo...