c 前置宣告與 include區別

2021-08-28 05:27:05 字數 282 閱讀 2561

當我們實現乙個類的時候,需要用到其他類的一些資訊。例如實現a類需要b類的資訊。

此時有兩種情況,一是只需要知道有b類的存在;二是需要知道b類的詳細資訊或者呼叫b類的方法。例如sizeof(b)。

第一種情況我們使用前置宣告,在標頭檔案中使用class b;注意:此時在使用b類時,只能宣告b類的指標或者引用進行使用。

第二種情況就不得不使用#include,我個人在這種情況在a類的標頭檔案中使用前置宣告將b類的指標宣告出來,在a.cpp檔案中在#include b;這樣其他檔案#include a時更為安全。

C 前置宣告

特點 被宣告的類不用重新編譯,節省編譯時間 比如a包含乙個指向b的指標,b包含a的乙個例項,這種情況下,使用前置宣告。易錯的點 class date class task1 因為分配器為d分配記憶體的時候,必須要知道 d的大小 主要應用場景是兩個標頭檔案相互包含的場景,建議僅將前置宣告用於解決迴圈引...

C 前置宣告

一般的前置函式宣告 見過最多的前置函式宣告,基本格式 如下 1 include 2 using namespace std 34 void fun char ch,int pvalue,double dvalue 56 void main 714 15void fun char ch,int pva...

C 前置宣告

問題 最近遇到了兩個類a b相互呼叫的情況,於是想當然的在兩個類a和b的標頭檔案中 include 了所需的標頭檔案,當然結果編譯報錯了。為什麼呢,a需要b,b需要a,形成了迴圈,違反了程式的確定性原則。如下圖所示 如這樣相互包含的問題,可以使用前置宣告來解決。即 在標頭檔案中宣告該類,在實現檔案中...