每個類只有乙個析構函式和乙個賦值函式。可有多個建構函式。
把物件的初始化放在建構函式中,把清除工作放在析構函式中。然後編譯器會自動進行初始化和清除工作。
建構函式和析構函式沒有返回值型別。
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函式 ...