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

2021-06-07 15:12:40 字數 1245 閱讀 1866

7.2.1用malloc或者new申請記憶體之後,應該立即檢查指標值是否為

null。防止使用指標值為null的記憶體。

7.2.3動態記憶體的申請與釋放必須配對,防止記憶體洩漏。

7.2.4用free或delete釋放了記憶體之後,立即將指標設定為null,防止

產生「野指標」。

7.7野指標的成因:

(1)指標變數沒有被初始化。

(2)指標p被free或者delete之後,沒有置為null,讓人誤以為p是個

合法的指標。

7.9記憶體耗盡問題:

(1)判斷指標是否為null,如果是則馬上用return語句終止本函式。

(2)判斷指標是否為null,如果是則馬上用exit(1)終止整個程式

的執行。

(3)為new和malloc設定異常處理函式。

7.10free的用法:

如果p是null指標,那麼free對p無論操作多少次都不會出問題。如果p

不是null指標,那麼free對p連續操作兩次就會導致程式執行錯誤。

8.5一下情況不宜使用內聯:

(1)如果函式體內的**比較長,使用內聯將導致記憶體消耗代價較高。

(2)如果函式體內出現迴圈,那麼執行函式體內**的時間要比函式

呼叫的開銷大。

不要隨便地將建構函式和西溝函式的定義體放在類宣告中。

9.0c++編譯器自動產生四個預設的函式,如:

a(void);

a(const a &a);

~a(void);

a &operator=(const a &a);

9.1 類的const常量只能在初始化表裡被初始化。

9.2 基類與派生類的析構函式應該為虛繼承。

11.1

對於非內部資料型別的輸入引數,應該將「值傳遞」的方式改為「const

引用傳遞」,目的是提高效率。

對於內部資料型別的輸入引數,不要將「值傳遞」的方式改為

「const引用傳遞」。否則既達不到提高效率的目的,又降低了函式的可

理解性。

11.2函式返回值採用「引用傳遞」的場合並不多,這種方式一般只出現

在類的賦值函式中,目的是為了實現鏈式表達。

11.3const成員函式

任何不會修改資料成員的函式都應該宣告為const型別。

11.4先優化資料結構和演算法,再優化執行**。

11.5變數(指標、陣列)被建立之後應當及時把它們初始化,以防止

把未被初始化的變數當成右值使用。

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

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

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

相比較c語言,c 增加了過載,內聯,const和 virtual 四種新機制。其中,過載和內聯既可用於全域性函式,也可用於類的成員函式。const 和virtual機制僅用於類的成員函式。函式過載 編譯器根據引數為每個過載函式產生不同的內部識別符號 不同編譯器產生的內部識別符號不同 c 呼叫c函式 ...

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

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