c 中兩個標頭檔案定義同名類的解決辦法

2021-08-21 01:30:36 字數 981 閱讀 7663

今天考慮了乙個問題,如果兩個標頭檔案比如time.h times.h裡面都定義了乙個time的類,要怎麼解決?vs編譯器只對cpp檔案進行編譯,在編譯階段,這兩個標頭檔案的實現檔案都不會出錯,如果不在主函式中用到time這個類,程式也不會有問題。但是如果用到,那就是disaster!!!,如果你不得不在兩個標頭檔案中定義同名類,下面是我自己思考出來的最簡單的解決方式---》用不同的作用域包含

#ifndef time_h

#define time_h

namespace

time1;}

#endif

#include "

time.h

"#include

#include

using

namespace

std;

time1::time::time(

int hour, int minute, int

second) //必須第乙個是作用域

time1::time::time()

void

time1::time::tick()

void

time1::time::show()

#ifndef times_h

#define times_h

namespace

time2;}

#endif

這裡沒寫我的times.h的cpp檔案為空,實現與否都乙個樣

主函式,這樣可以順利執行處結果,如果不用作用域包含,則會出現重複定義的後果

#include "

times.h

"#include

"time.h

"int

main()

c 中兩個標頭檔案定義同名類的解決辦法

今天考慮了乙個問題,如果兩個標頭檔案比如time.h times.h裡面都定義了乙個time的類,要怎麼解決?vs編譯器只對cpp檔案進行編譯,在編譯階段,這兩個標頭檔案的實現檔案都不會出錯,如果不在主函式中用到time這個類,程式也不會有問題。但是如果用到,那就是disaster!如果你不得不在兩...

兩個標頭檔案相互包含的問題

大家知道c 檔案一般包含.cpp檔案和.h檔案,當兩個類相互在標頭檔案中包含對方的標頭檔案的時候編譯器會報錯的。如下例子 class object1 的標頭檔案object1.h include object2.h class object1 class object2 的標頭檔案object2.h...

C 中,兩個標頭檔案互相引用怎麼辦

兩個標頭檔案相互包含會導致超前引用的問題,所謂超前引用是指乙個型別在定義之前就被用來定義變數和宣告函式。發生這種情況是無法編譯通過的,不過可以採取一些手段解決該問題 超前引用導致的錯誤有以下幾種處理辦法 1 使用類宣告 在超前引用乙個類之前,首先用乙個特殊的語句說明該識別符號是乙個類名,即將被超前引...