012 命名空間和模組化程式設計

2021-06-28 11:23:35 字數 1267 閱讀 5320

接下來我們將重點討論兩個相互關聯的簡單概念:

把程式劃分成多個組成部分(即所謂的「模組」)

這是通過把程式**分散到多個檔案裡,等編譯程式時再把那些檔案重新組合在一起實現的。

這個概念相比起c語言是c++裡新增加的東西,編寫的程式越多、編寫的程式越複雜,就越需要使用命名空間。

只用乙個源**檔案來儲存程式的全部**是可行的,但那會給編輯修改工作帶來諸多不便。

我們可以借助於c++的預編譯器和編譯器的能力把乙個複雜的應用程式劃分成多個不同的檔案,而仍保持它在內容和功能上的完整。

c++預處理器的#include指令提供了一種能夠讓編譯器在編譯主程式時把其他檔案的內容包括進來的機制。

例如用這個指令來包括像iostream標頭檔案我們已經用過很多次了。

標頭檔案的基本用途是提供必要的函式宣告和類宣告。比如string標頭檔案就定義了字串應該如何建立和使用。

標頭檔案可以細分為系統標頭檔案和自定義標頭檔案。

顧名思義,系統標頭檔案定義的都是系統級功能,正式因為有了它們,c++**才可以在某種特定的系統上執行。

如果你想在你的程式使用這些功能,就必須把相應的標頭檔案包括到你的程式裡來。

系統標頭檔案的另乙個重要作用是保證c++**的可移植性,確保同樣的c++**在不同的作業系統上做同樣的事情。

例如為mac定義的cout和為windows定義的cout做的事情一樣,但內部的具體實現不見得一樣。

在#include指令裡,系統標頭檔案的檔名要放在尖括號裡給出,這是告訴編譯器:應該到「標準的」地點尋找這個檔案:

#include

在#include指令裡,自定義標頭檔案的檔名要放在雙引號裡給出:#include 「fishc.h」

標頭檔案是一些以.h作為副檔名的標準文字檔案。

一般情況下,都應該把自定義的標頭檔案和其餘的程式檔案放在同乙個子目錄裡,或者在主程式目錄下專門建立乙個子資料夾來集中存放它們。

你可以用標頭檔案來儲存程式的任何一段**,如函式或類的宣告,但一定不要用標頭檔案來儲存它們的實現!

與標準的c++源**檔案相比,在標頭檔案裡應該使用更多的注釋。

絕大多數標頭檔案是通用型的,不隸屬於任何特定的程式,所以至少把它的用途和用法描述清楚。

建立日期,檔案用途,建立者姓名,最後一次修改日期,有什麼限制和前提條件等等。

另外標頭檔案裡的每乙個類和函式也應該有說明。

雖說標頭檔案可以用來儲存任意**片段,但典型的做法是只用它們來儲存函式宣告、使用者自定義型別資料(結構和類)、模板和全域性性的常量。

標頭檔案應該只包含最必要的**,比如只宣告乙個類或只包含一組彼此相關的函式。

013 命名空間和模組化程式設計2

在建立了標頭檔案之後,只要把它的檔名用雙引號括起來寫在如下所示的指令裡就可以匯入它 include fishc.h 如果沒有給出路徑名,編譯器將到當前子目錄以及當前開發環境中的其他邏輯子目錄裡去尋找標頭檔案。為了消除這種猜測,在匯入自己的標頭檔案時可以使用相對路徑。如果標頭檔案與主程式檔案在同乙個子...

模組化程式設計

將乙個5元素陣列,右移n位,n從鍵盤輸入,首尾相接 例如 陣列中的元素為 那麼 n 3 的結果如下 資料是向右邊移三位,那麼,我轉化成先移一位的情況。因為當移一位的問題解決了,移動n位只需要將此過程迴圈n次即可 1.把a 1 放到臨時空間t t a 1 2.依次把前面元素的值放到後面的空間裡面.從後...

模組化程式設計小結

模組化程式設計,可以讓程式變得容易理解,結構更加清晰,下面小結一下如何進行模組化程式設計 本文以keil軟體進行舉例 1 將所需要的程式分為 c 和 h 兩類,其中 c 中用來實現程式,h 則用來宣告程式 2 在 c 的檔案中,包含所需的標頭檔案,如 include reg52.h 3 在宣告函式的...