C++Primer::头文件设计基本原则 与 预处理器介绍
生活随笔
收集整理的這篇文章主要介紹了
C++Primer::头文件设计基本原则 与 预处理器介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.學(xué)會(huì)編寫自己的頭文件
有多個(gè)文件組成的程序需要一種方法連接名字的使用和聲明,在C++中就是通過頭文件實(shí)現(xiàn)的。C++程序使用頭文件包含的不僅僅是類定義。 為了允許把程序?qū)懗瑟?dú)立的邏輯塊,C++支持所謂的分別編譯。正陽程序可以由多個(gè)文件組成。 頭文件為相關(guān)聲明提供了一個(gè)集中存放的位置。頭文件一般包含類的定義、extern變量的聲明和函數(shù)的聲明。使用或定義這些實(shí)體的文件要包含適當(dāng)?shù)念^文件。頭文件的正確使用可以帶來兩個(gè)好處:保證所有文件使用給定實(shí)體的同一聲明;當(dāng)聲明需要修改時(shí),只有頭文件需要更新。2. 預(yù)處理器的簡單介紹
要使用頭文件,必須在源文件中#include該頭文件。很有必要了解#include指示是怎樣工作的。#include設(shè)施是C++預(yù)處理器的一部分。預(yù)處理器處理程序的源代碼,在編譯器之前運(yùn)行。C++繼承了C的非常精細(xì)的預(yù)處理器。 #include指示只接受一個(gè)參數(shù):頭文件名。預(yù)處理器用指定的頭文件的內(nèi)容代替每個(gè)#include。我們自己的頭文件存儲(chǔ)在文件中,系統(tǒng)的頭文件可能特定與編譯器的更高效的格式保存。無論頭文件以什么樣的格式保存,一般都含有支持分別編譯所需的類定義及變量和函數(shù)的聲明。 采用多文件設(shè)計(jì)程序,我們很難避免多重包含頭文件的問題,C++給出了一個(gè)良好的解決方案。3. 如何避免頭文件的多重包含
在編寫頭文件之前,我們需要引入一些額外的預(yù)處理器設(shè)施。預(yù)處理器允許我們自定義變量。(預(yù)處理器變量的名字在程序中必須是為唯一的。任何與預(yù)處理器變量相匹配的名字的使用都關(guān)聯(lián)到該處理器變量)。 為了避免名字沖突,預(yù)處理器變量通常全大寫字母表示。 預(yù)處理器有兩種狀態(tài):已定義或未定義。定義預(yù)處理器變量和檢測其狀態(tài)所用的預(yù)處理器指示不同。#define指示接受一個(gè)名字并定義改名字為預(yù)處理器變量。#ifndef指示檢測指定的預(yù)處理器變量是否未定義。如果預(yù)處理器變量未定義,那么 跟在其后的的所有指示都被處理,直到出現(xiàn)#endif。那么,我們就可以使用這些設(shè)施來預(yù)防多次包含同一頭文件: #ifndef SALESITEM_H #define SALESITEM_H // defination of Sales_item class and related functions goes here #endif4.區(qū)分標(biāo)準(zhǔn)頭文件和自己定義的頭文件
#include 指示接受兩種形式: #include<standard_header> #include "my_file.h"j尖括號(hào)里面的頭文件是標(biāo)準(zhǔn)頭文件。編譯器將會(huì)在預(yù)定義的位置集查找該頭文件。引號(hào)內(nèi)的頭文件,并不是系統(tǒng)的頭文件,而是用戶自己編寫的頭文件。非系統(tǒng)頭文件的查找通常開始于源文件所在的路徑。總結(jié)
以上是生活随笔為你收集整理的C++Primer::头文件设计基本原则 与 预处理器介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++primer: 引用与 cons
- 下一篇: 飞秋_常用正则表达式集锦