天天看點

c++ class前置聲明代替頭檔案引入

C++盡量用前置聲明替代頭檔案包含

技術标簽: C++ 前置聲明 頭檔案

C++編譯是一件非常費時的事情,為了盡量的減少編譯時間,必須更好的包含頭檔案。

下面有幾條很重要的教條,可以參考。

(1) 在頭檔案中能用類前置聲明代替頭檔案包含的就用前置聲明。因為使用類前置聲明,當引用的類發生改變時,目前檔案不需要重新編譯。

(a)必須要包含頭檔案的情況

            (*) A繼承C,A類的頭檔案中必須要包含C的頭檔案;

            (*)A中包含C類的成員變量,A類的頭檔案中必須包含C的頭檔案;

            (*)A中的inline函數中引用到了C類的成員,A類的頭檔案必須包含C的頭檔案;

   (b)可以用類的前置聲明代替頭檔案的情況

            (*)A中包含C類的指針成員或引用成員;

            (*)A中聲明的函數的參數或傳回值是C的變量(C類型,C指針類型,C引用類型);
           

(2)對于類需要的頭檔案,盡量在源檔案中包含,而在頭檔案中使用前置聲明。在源檔案中,隻引用需要的頭檔案,不需要的頭檔案不引用。

(3)在源檔案中包含頭檔案的順序遵循如下原則:源檔案對應的頭檔案(類聲明)、C标準庫、C++标準庫、其它庫的頭檔案、你自己工程的頭檔案。

(4)VS采用了一種預編譯頭檔案機制,對于變動不大的聲明,應該放到預編譯頭檔案中。

為了盡量少的在頭檔案中包含其他頭檔案,一個類中應該盡量定義其他類的指針或引用資料成員,但是引用資料程式必須在構造函數中指派,是以最終應該盡量在類中聲明其他類的指針資料成員。

使用指針之前是否需要進行空值判斷:

在函數中,對應指針參數,如果不希望參數為空時,需要使用arrest來檢查參數是否為空。此語句隻在Debug版本有效,在正式釋出後無效,不影響效率。

在調用帶有指針參數的函數時,最好在調用之前檢查一下指針是否為空。即遵循誰調用,誰檢查的原則。

版權聲明:本文為ankang654321原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。

本文連結:https://blog.csdn.net/ankang654321/article/details/97640060

繼續閱讀