在構造自己的類時,可能會遇到兩個類相互引用的問題。
例如: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 在這種情況下,想想能夠...