C 中兩個類相互包含的求解策略

2021-09-30 12:14:57 字數 1244 閱讀 9632

問題描述:

a類包含

b類的例項,而

b類也包含

a類的例項

求解策略

l 錯誤的解法

a檔案包含b,而

b檔案又包含

a檔案,這樣就形成死迴圈

#include "b.h"  

class a  

;  

#include "a.h"  

class b  

;   l 

正確的寫法以及注意事項 

1)主函式只需要包含

b.h 

就可以,因為

b.h中包含了

a.h

2)

a.h中不需要包含

b.h,但要宣告

class

b在避免死迴圈的同時也成功引用了b

3)包含

class  b 

而沒有包含標頭檔案 

"b.h"

,這樣只能宣告  

b型別的指標!!!!而不能例項化!!!!

a.h:

#include 

using namespace std;  

class b;  

class a     

};  

b.h:

#include 

#include "a.h"  

using namespace std;  

class b     

};  

主函式

#include 

#include 

#include "b.h"  

int _tmain(int argc, _tchar* ar**)    

C Primer 兩個類相互包含的求解策略

一,問題描述 a類包含b類的例項,而b類也包含a類的例項 二,求解策略 1 錯誤的解法 a檔案包含b,而b檔案又包含a檔案,這樣就形成死迴圈 include b.h class a include a.h class b 2 正確的寫法以及注意事項 1 主函式只需要包含b.h 就可以,因為b.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 在這種情況下,想想可以...