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

2021-07-11 02:36:45 字數 1506 閱讀 2461

每個類只有乙個析構函式和乙個賦值函式。可有多個建構函式。

把物件的初始化放在建構函式中,把清除工作放在析構函式中。然後編譯器會自動進行初始化和清除工作。

建構函式和析構函式沒有返回值型別。

9.2建構函式的初始化列表

位於函式引數表之後,之前,類的const常量只能在初始化列表中初始化,

9.3建構函式的次序

構造從類的最根層呼叫,首先呼叫基類的建構函式,然後呼叫成員物件的建構函式。析構函式與建構函式相反,該次序是惟一的。

注:成員物件初始化的次序只由成員物件在類中的宣告次序決定。因為類的宣告是唯一的。

9.8如何在派生類中實現類的基本函式。

如果類中存在繼承關係:

1.派生類的建構函式應在其初始化列表中呼叫基類的建構函式。

2.基類和派生類的析構函式應為虛函式(virtual)

3.編寫派生類的賦值函式時,注意不要忘記對基類的資料成員進行重新賦值。

10.類的繼承和組合

物件是類的例項。

10.1繼承

假設a是基類,b是派生類,那麼b將繼承a的資料和函式。

規則:

1.如果類a和類b毫無相關,不可以為了多了讓b一些無相關的功能,就繼承a。

2.若在邏輯上b是a的一種,並且a的所有功能和屬性對b都有意義,則b繼承a 的函式和功能。

10.2組合

若a是b的一部分,則不允許b從a派生。而是應組合。

#includeusing namespace std;

class eye

;class nose

;class mouth

;class ear

;class head

void smell(void )

void eat(void )

void listen(void )

private:

eye m_eye;

nose m_nose;

mouth m_mouth;

ear m_ear;

};int main()

第十一章:

11.1使用const 提高函式的健壯性。

11.1.1使用const修飾函式的引數。

const只能修飾輸入引數。

如果輸入引數採用指標傳遞。加const可以防止意外的修改指標。

讀書筆記 高質量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程式設計指南》讀書筆記二

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