寫一個自己的頭文件包括了以下幾步:
一、#include 源文件需要用到的標准庫;
(#include +<文件名>/"文件名" <>為標准系統頭文件,""為非系統頭文件,查找源於源文件所在路徑)
二、編寫頭文件的內容:
因為頭文件將會包含在多個源文件中,所以不應該含有變量和函數的定義,但有三個定義是例外的;
①類的定義;②const對象(常量);③inline函數;
需注意的是const對象在其他包含該頭文件的源文件中是不可用的,但可以通過在頭文件中const定義前添加extern使其被多個文件共享;
但必須遵循的是"一次定義,多次聲明"的規矩,所以我們有必要弄清楚"聲明"於"定義"的區別.
三、避免多重包含(頭文件保護符)
頭文件包含其他頭文件,甚至一個頭文件被多次包含進同一源文件中是很常見的時,
但我們要避免這同一頭文件不會引起該頭文件定義的類和對象被多次定義,於是我們在頭文件中引入額外預處理設施.
在編寫頭文件預處理處寫入:
#ifndef 自定義變量名(稱為"預處理器變量",一般用全大寫英文,如SALESITEM_H)
#define 自定義變量名(同上)
#include<>
..........
#endif
原理:文件頭中#ifndef SALESITEM_H 測試SALESITEM_H變量是否未定義.如果未定義,則接下來的所有行都會被執行,
直到遇到#endif.相反若果SALESITEM_H已定義那么接下來到#endif間的代碼都會被忽略;
換句話說,在編輯器第一次預處理該頭文件時會定義SALESITEM_H這個變量,遇到第二次這個頭文件時,編譯器就會跳過這個頭文件的預處理.
從而達到了避免多重包括的效果.