**:
主要參考effective c++
對於類中函式介面的描述
· 純虛函式意味著僅僅繼承函式的介面。如果類c宣告了乙個純虛函式mf,c的子類必須繼承mf的介面,c的具體子類必須為之提供它們自己的實現。
· 簡單(一般普通的)虛函式意味著繼承函式的介面加上乙個預設實現。如果類c宣告了乙個簡單(非純)虛函式mf,c的子類必須繼承mf的介面;如果需要的話,還可以繼承乙個預設實現。
· 非虛函式意味著繼承函式的介面加上乙個強制實現。如果類c宣告了乙個非虛函式mf,c的子類必須同時繼承mf的介面和實現。實際上,mf定義了c的 "特殊性上的不變性"。
c++標頭檔案狀況
標準委員會決定為包裝了std的那部分標準庫構件建立新的頭檔名。生成新標頭檔案的方法僅僅是將現有c++頭檔名中的 .h 去掉,方法本身不重要,正如最後產生的結果不一致也並不重要一樣。所以變成 了,變成了,等等。對於c標頭檔案,採用同樣的方法, 但在每個名字前還要新增乙個c。所以c的變成了,變成 了,等等。最後一點是,舊的c++標頭檔案是官方所反對使用的(即,明確列出不再支援),但舊的c標頭檔案則沒有(以保持對c的 相容性)。實際上,編譯器製造商不會停止對客戶現有軟體提供支援,所以可以預計,舊的c++標頭檔案在未來幾年內還是會被支援。
· 舊的c++頭檔名如將會繼續被支援,儘管它們不在官方標準中。這些標頭檔案的內容不在名字空間std中。
· 新的c++標頭檔案如包含的基本功能和對應的舊標頭檔案相同,但標頭檔案的內容在名字空間std中。(在標準化的過程中,庫中有些部分的細節被修改了,所以舊標頭檔案和新標頭檔案中的實體不一定完全對應。)
· 標準c標頭檔案如繼續被支援。標頭檔案的內容不在std中。
· 具有c庫功能的新c++標頭檔案具有如這樣的名字。它們提供的內容和相應的舊c標頭檔案相同,只是內容在std中。
看看字串標頭檔案理情況:是舊的c標頭檔案,對應的是基於char*的字串處理函式;是包 裝了std的c++標頭檔案,對應的是新的string類;是對應於舊c標頭檔案的std版本。
類前置宣告和標頭檔案包含
類的前置宣告 forward declaration 和包含標頭檔案 include 的區別常常會迷惑我們,特別是涉及兩個類相互包含的時候。因此我們有必要搞清楚二者的區別以及二者的適用場合。首先我們需要問乙個問題是 為什麼兩個類不能互相包含標頭檔案?所謂互相包含標頭檔案,我舉乙個例子 圖層類clay...
C語言 原始檔和標頭檔案理解
簡單的說其實要理解c檔案與標頭檔案 即.h 有什麼不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程 1.預處理階段 2.詞法與語法分析階段 3.編譯階段,首先編譯成純彙編語句,再將之彙編成跟cpu相關的二進位製碼,生成各個目標檔案 obj檔案 4.連線階段,將各個目標檔案中的...
C 標準庫名字和標頭檔案
標準庫名字和標頭檔案 name 名字 header 標頭檔案name 名字 header 標頭檔案abort ios base accumulate isalpha allocator islower auto ptr ispunct back inserter isspace bad alloc ...