C++ 總結(jié)

1.函數(shù)重載是為了實現(xiàn) 虛函數(shù)的副產(chǎn)品,函數(shù)重載引進了操作符重載,但也引入了工程函數(shù)的歧義性。

反例:定義了fun(double)和fun(float),當我們調(diào)用fun(int)會出現(xiàn)歧義。

2.構(gòu)造函數(shù)的初始化 盡量使用初始化列表,這樣做的目的是在構(gòu)造之前初始化成員,如果定義在結(jié)構(gòu)體中,只能在調(diào)用構(gòu)造函數(shù)時初始化成員。

兩種情況下必須使用初始化列表:

1)const成員

2)子類的父類沒有默認的構(gòu)造函數(shù),子類在構(gòu)造構(gòu)造 必須先通過初始化列表構(gòu)造父函數(shù)。

3.多態(tài)的基礎是容器。虛函數(shù)的目的 是為了實現(xiàn)多態(tài),多態(tài)是因,虛函數(shù)是果。

面向?qū)ο蟮?程序設計方法需要多態(tài),但并不需要虛函數(shù),虛函數(shù)只是C++語言中特有的方法。

面向?qū)ο?需要對象的概念,但并不需要類,所以有的程序語言并沒有類的概念。

4.函數(shù)傳遞對象參數(shù)時,需要傳遞引用,而不是傳值,這是因為在對象傳值過程中,會調(diào)用拷貝構(gòu)造函數(shù),效率比較低。

拷貝構(gòu)造函數(shù)的參數(shù)必須是引用,如果是傳值傳參會造成無窮調(diào)用拷貝構(gòu)造函數(shù)。

5.組合是包含一個對象,而聚合是包含一個類指針。組合控制生死,聚合不控制,就是拿過來用一下。

從耦合性上講 繼承>組合>聚合,我們在編寫代碼時總是希望弱耦合,所以盡量選擇聚合和組合。繼承主要針對抽象類,繼承接口。

6.對象決定虛函數(shù),類決定非虛函數(shù)。

7.析構(gòu)函數(shù)盡量選擇虛函數(shù),虛析構(gòu)函數(shù)具有特殊的性質(zhì),即調(diào)用虛析構(gòu)函數(shù)時會先調(diào)用父虛構(gòu)函數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • enum 枚舉enum spectrum{red, orange, yellow, green, blue, vi...
    i_Eloise閱讀 452評論 1 0
  • 終于煲完這本書了...這本書是一本寫給由c轉(zhuǎn)c++新手的入門書.它的亮點在于非常詳細清晰地闡明c++中一些基礎語法...
    doyoubi閱讀 2,131評論 0 3
  • 1.何為多態(tài)??多態(tài)的作用?多態(tài)的概念:一個接口,多種方法多態(tài)的作用:封裝可以是得代碼模塊化;繼承可以擴展已經(jīng)存在...
    bluewind1230閱讀 652評論 0 1
  • 1. C++基礎 大多數(shù)編程語言通過兩種方式來進一步補充其基本特征1)賦予程序員自定義數(shù)據(jù)類型的權(quán)利,從而實現(xiàn)對語...
    王偵閱讀 810評論 0 3
  • 高中的時候 沒有朋友 只有男朋友,覺得男朋友可以替代女朋友哈哈 傻不傻
    pwkshsuh閱讀 87評論 0 0

友情鏈接更多精彩內(nèi)容