假如有兩個類分別為a,b 現在的情況是 a需要呼叫b中的成員,b需要呼叫a的成員。或者好幾個類都是互相呼叫的關係。
一般情況下是這樣做,互相包含標頭檔案,但是這樣肯定是錯誤的。
比如兩個類:
檔案a.h
#include "b.h"
#include using namespace std;
class a
檔案b.h
#include "a.h"
#include using namespace std;
class b
編譯報錯。
那應該如何處理呢
檔案a.h
#include using namespace std;
class b; //前置宣告類b,只供標頭檔案中使用
class a
檔案b.h
#include "a.h"
#include using namespace std;
class b
檔案a.cpp
#include "a.h"
#include "b.h"
a::~a()
void a::func()
總結上述情況:
當幾個類需要相互包含的時候,如果兩兩之間需要互相包含,那麼需要在其中乙個類的標頭檔案宣告該類之前 先宣告需要包含的類 即
class 類名 //類的前置宣告
class 本類
然後如果需要例項化前之類,那麼需要在本類的cpp檔案中,再新增前置類的標頭檔案,否則不能例項化。
兩個類互相包含的問題
今天在寫自己專案時碰到兩個類互相包含的問題,查詢了下網上的資料,整理如下 在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a class b 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義...
兩個類標頭檔案互相包含
c 中兩個類的標頭檔案互相包含問題 csdn部落格 我們知道,當乙個類 設類a 中包含另乙個類 設類b 的物件時,必須在該檔案中包含另乙個類的標頭檔案,如果兩個類都互用到了對方的物件,理論上就要互相包含標頭檔案,但是這樣是不可取的。貼出 如下 這樣是無法通過編譯的,其原因是它們的標頭檔案互相包含了,...
c 中兩個類互相包含引用怎麼處理
在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a class b 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義物件,即如下的樣子 class a class b 在這種情況下,想想能夠...