標頭檔案應該怎麼寫

2021-07-04 21:06:35 字數 1121 閱讀 8849

因為乙個物件只能定義一次,能夠宣告多次,所以標頭檔案最重要的規則是只宣告,不定義(除少數物件外)。而且只宣告其他檔案需要用到的物件,其他檔案不需要用到的物件沒必要在標頭檔案中宣告。當其他檔案需要用到本檔案定義的一些物件時,我們可以將這些物件寫到頭檔案中,其他檔案只要include這個標頭檔案即可使用相應的物件。

標頭檔案一般包含類的定義(不包含類定義外部的成員函式實現),extern變數宣告,以及函式宣告。要看乙個專案好不好,看它的標頭檔案合不合理是乙個參考因素。只有從邏輯上關聯比較緊密的物件宣告,我們才能夠放在乙個標頭檔案當中,這樣它們在一起被使用的概率比較大,而且符合邏輯,方便管理。

能夠在標頭檔案中定義的特殊情況,除了類定義之外,還有在編譯的時候已知的const物件和內聯函式。除此之外不要定義,只能宣告。編譯時已知的const物件是指,用常量表示式初始化賦值的const物件。如:

const int ival = 5; //right

const int ival1 = a; //error

其實在每乙個包含該標頭檔案的檔案中都定義了乙個相同名字的相同值的const物件。但是const物件的有效範圍只能是本檔案,所以不會和其他檔案的產生衝突。這樣一來,你可能會問,每個包含該標頭檔案的檔案都定義了乙個一模一樣的const物件,都給它分配記憶體,那豈不是差的**風格。其實不會,在**編譯之後,凡是呼叫了該const物件的地方都直接用對應的常量代替,而不會單獨給該const物件分配儲存空間。

還需要注意的是標頭檔案保護符,以避免標頭檔案被多次包含,和內聯函式的解釋。後續有空做進一步解釋。

下面是乙個簡單的標頭檔案例子:

#ifndef test_h   //!< 標頭檔案保護符,防止多重呼叫

#define test_h

const

int ival = 5 * 2; //!< 用常量表示式初始化的const物件

extern

double totalnum; //!< extern物件,說明該物件在其他檔案定義

extern

double sq2;

int addint(int a, int b); //!< 函式宣告

double sqrint(int a);

#endif

標頭檔案中應該寫什麼

通 過上面的討論,我們可以了解到,標頭檔案的作用就是被其他的.cpp 包含進去的。它們本身並不參與編譯,但實際上,它們的內容卻在多個 cpp 檔案中得到了 編譯。通過 定義只能有一次 的規則,我們很容易可以得出,標頭檔案中應該只放變數和函式的宣告,而不能放它們的定義。因為乙個標頭檔案的內容實際上是會...

python怎麼寫檔案 python標頭檔案怎麼寫

本文主要以python2為例。首先介紹一下python標頭檔案的程式設計風格,然後再給大家詳細介紹import部分的基本用法。這兩個部分就是python中標頭檔案的組成模組。程式設計風格 usr bin env python 在檔案頭部 第一行 加上 設定 python 直譯器 coding utf...

部落格應該怎麼寫

雖然我們大部分在機房都呆了一年了,但是還是很多人對於部落格還是望而生畏,不能說是應付差事,但是總有一點一些部落格就頭疼的感覺,更有甚者,冥思苦想,最終寫出來的總是不敬人意。今天 大話 基本上都要看完了,其實對於這本書還是深有感觸的,以 大話 為題,說說部落格我們應該怎麼寫。與其抱怨需求總是在變化,不...