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

2021-08-27 01:18:40 字數 521 閱讀 3202

一,問題描述

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中包含了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

兩個類相互包含的問題

1,問題介紹 在 date.h 檔案中宣告了date這個類,在 date.cpp 檔案中定義了date 這個類 在 time.h 檔案中宣告 time 這個類,在 time.cpp 中定義time這個類。在date類中包含乙個time 類物件,在time類中包含乙個date類物件。那麼,date.h...

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

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

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

1 背景 程式設計中遇到如下錯誤 使用不完全型別 以及 前向宣告。查詢相關資料後發現是類的前向宣告 forward declaration 問題 在程式中宣告乙個類後,此類是乙個不完全型別 incompete type 即已知此類是乙個型別,但不知道包含哪些成員。不完全型別 只能以有限方式使用,不能...