兩個類相互包含的問題

2021-08-20 18:50:06 字數 1564 閱讀 8320

1,問題介紹:

在  date.h 檔案中宣告了date這個類,

在  date.cpp 檔案中定義了date 這個類

在 time.h 檔案中宣告 time 這個類,

在 time.cpp 中定義time這個類。

在date類中包含乙個time 類物件,

在time類中包含乙個date類物件。

那麼,date.h中必須要包含time.h  ,  time.h中必須要包含date.h

假設首先編譯date.cpp ,就會呼叫date.h ,但是date.h 中又包含了time.h ,time.h 中又包含了 date.h  ,形成死迴圈,重複呼叫

2,**舉例說明

date.h

#includeusing namespace std;

#include"time.h"

class date

;

date.cpp 

#include"date.h"

date:: date(int year,int month,int day)

:_year(year)

,_month(month)

,_day(day)

{}

void date:: printdate()

;

time.cpp 

#include"time.h"

time::time(int hour,int minute,int second)

:_hour(hour)

,_minute(minute)

,_second(second)

{}void time::printtime()

;

date.cpp

#include"date.h"

#include"time.h"//要分配乙個time物件的空間就要知道time的結構

#includedate:: date(int year,int month,int day)

:_year(year)

,_month(month)

,_day(day)

void date:: printdate()

;

time.cpp

#include"time.h"

#include"date.h"//要分配乙個date物件的空間就要知道date的結構

完美解決

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

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

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

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

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

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