c 中兩個類相互包含引用的相關問題

2022-02-22 21:08:32 字數 608 閱讀 6434

在構造自己的類時,可能會遇到兩個類相互引用的問題。

例如:class a

int i;

b b;

class b

int i;

a a;

在這種情況下,這樣就會出現乙個死迴圈a.b.a.b.a.b....,一般來說,應避免這種情況。

如果確實需要的話,一般來說,至少有一方需要定義成指標。

例如:class a

int i;

b b;

class b

int i;

a* a;

如果按照以上的方式,既然存在互相引用,就必須互相包含標頭檔案,如果僅僅是在自己的標頭檔案中包含另外乙個標頭檔案,這樣是沒法編譯通過的。怎樣解決這個問題呢?

一般的做法是:兩個類的標頭檔案中,選擇乙個包含另外乙個標頭檔案。而另外乙個標頭檔案中只能以class *的形式宣告,而在類的實現檔案中包含標頭檔案。

具體為:

#include "b.h"

class a

int i;

b b;

class a;

class b

int i;

a* a;

#include "a.h"

C 中兩個類相互包含引用問題

在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a int i b b class b int i a a 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義物件,即如下的樣子 class a...

C 中兩個類相互包含引用問題

在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a class b 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義物件,即如下的樣子 class a class b 在這種情況下,想想可以...

C 中兩個類相互包含引用問題

在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如 定義了類a類b,a中使用了b定義的型別,b中也使用了a定義的型別 class a class b 請注意上面的定義內容,一般情況下是不能出現類a,類b相互引用都定義物件,即如下的樣子 class a class b 在這種情況下,想想能夠...