《高質量C C程式設計指南》讀書筆記二

2021-07-11 01:28:30 字數 1100 閱讀 5876

相比較c語言,c++增加了過載,內聯,const和 virtual 四種新機制。其中,過載和內聯既可用於全域性函式,也可用於類的成員函式。 const 和virtual機制僅用於類的成員函式。

函式過載:編譯器根據引數為每個過載函式產生不同的內部識別符號(不同編譯器產生的內部識別符號不同)。

c++呼叫c函式 --->用extern "c"

過載與覆蓋:

成員函式被過載的特徵:

1.相同的作用域(同乙個類中)。

2.函式名相同

3.引數不同。

4.virtual關鍵字可有可無。

覆蓋是指派生類函式覆蓋基類函式,特徵是:

1.不同作用域(派生類與基類)

2.函式名相同

3.引數相同

4.基類必須有virtual。隱藏

隱藏是指派生類中的函式隱藏了基類中的函式(只要不是前兩種的就是隱藏,隱藏比較亂)。

1.派生類與基類函式名相同,引數不同,不論有無virtual,都算隱藏。

2.派生類與基類函式名相同,引數相同,基類無virtual,->基類被隱藏。

引數的預設值:

1.引數的預設值只能出現在宣告中,不能出現在定義中。

2.多個引數時,只能從後向前挨個預設(不能中間中)

運算子的過載規則:

記住: = () [ ]-> 只能過載為成員函式(小考點)

內聯:c++  語言支援函式內聯,其目的是為了提高函式的執行效率(速度)

在  c程式中,可以用巨集**提高執行效率。巨集**本身不是函式,但使用起來象函 數。 預處理器用複製巨集**的方式代替函式呼叫, 省去了引數壓棧、 生成組合語言的 程式中,可以用巨集**提高執行效率。巨集**本身不是函式,但使用起來象函 數。 預處理器用複製巨集**的方式代替函式呼叫, 省去了引數壓棧、 生成組合語言的  call 行 呼叫、返回引數、執行 n r et ur n 等過程,從而提高了速度。使用巨集**最大的缺點是容 易出錯,預處理器在複製巨集**時常常產生意想不到的邊際效應。

在呼叫內聯函式時,編譯器首先檢查呼叫是否正確(型別檢查,自動型別轉換),如果正確,就替換函式呼叫。(預處理器不會進行安全檢查或自動型別轉換)

inline 必須與函式定義放在一起。

慎用內聯

讀書筆記 高質量C C程式設計指南 目錄

序 最近痛下決心要好好學習下c和c 以為即將來臨的求職做點準備,在網上搜野指標的問題時看到了 高質量c c程式設計指南 對於我這種想從事嵌入式開發的人來說,猶如收穫到一本程式設計的bible似的。此文對c和c 程式設計的風格及注意事項進行了精妙的分析,集合了thinking in c effecti...

高質量C C 程式設計指南讀書筆記(2)

7.2.1用malloc或者new申請記憶體之後,應該立即檢查指標值是否為 null。防止使用指標值為null的記憶體。7.2.3動態記憶體的申請與釋放必須配對,防止記憶體洩漏。7.2.4用free或delete釋放了記憶體之後,立即將指標設定為null,防止 產生 野指標 7.7野指標的成因 1 ...

《高質量C C程式設計指南》讀書筆記三

每個類只有乙個析構函式和乙個賦值函式。可有多個建構函式。把物件的初始化放在建構函式中,把清除工作放在析構函式中。然後編譯器會自動進行初始化和清除工作。建構函式和析構函式沒有返回值型別。9.2建構函式的初始化列表 位於函式引數表之後,之前,類的const常量只能在初始化列表中初始化,9.3建構函式的次...