c 幾個類互相包含

2021-09-19 14:47:17 字數 1044 閱讀 7718

假如有兩個類分別為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 在這種情況下,想想能夠...