多態(tài)和虛函數(shù)

多態(tài)可以分為靜態(tài)多態(tài)和動態(tài)多態(tài)

靜態(tài)多態(tài):函數(shù)重載,泛型編程,編譯器在編譯期間內(nèi)完成的,編譯器根據(jù)函數(shù)實(shí)參的類型可推斷出調(diào)用哪個函數(shù)

動態(tài)多態(tài):虛函數(shù)實(shí)現(xiàn)并給于類繼承來表現(xiàn)

動態(tài)多態(tài)的機(jī)制:

1.子類繼承父類

2.類實(shí)現(xiàn)接口

動態(tài)綁定的條件:

1.必須是虛函數(shù)

2.通過基類類型的引用或者指針調(diào)用

總結(jié):

1.派生類重寫基類的虛函數(shù)實(shí)現(xiàn)多態(tài),要求函數(shù)名、參數(shù)列表、返回值完全相同

2.基類中定義了虛函數(shù),在派生類中該函數(shù)始終保持虛函數(shù)的特性

3.只有類的成員函數(shù)才能定義虛函數(shù),靜態(tài)成員函數(shù)不能定義虛函數(shù)

4.如果在類外定義虛函數(shù),只能在聲明函數(shù)時加上virtual關(guān)鍵字,定義時不用加

5.構(gòu)造函數(shù)不能定義為虛函數(shù),

6.不要在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù),在構(gòu)造函數(shù)和析構(gòu)函數(shù)中,對象是不完整的,可能會出現(xiàn)未定義的行為

7.最好將基類的析構(gòu)函數(shù)聲明為虛函數(shù)。

8.虛表是所有類對象實(shí)例共用的


易混淆的知識點(diǎn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 多態(tài)(1)靜態(tài)多態(tài)與動態(tài)多態(tài) 什么是多態(tài) 從字面上理解就是多種形態(tài)的意思。而多態(tài)一詞最初源自希臘語,其含義便是“多...
    kingZXY2009閱讀 2,345評論 0 2
  • 繼承和多態(tài) 1. 繼承的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):(1)子類可以靈活地改變父類中的已有方法;(2)能夠最大限度的實(shí)現(xiàn)代碼重用。...
    MinoyJet閱讀 664評論 0 0
  • C++虛函數(shù) C++虛函數(shù)是多態(tài)性實(shí)現(xiàn)的重要方式,當(dāng)某個虛函數(shù)通過指針或者引用調(diào)用時,編譯器產(chǎn)生的代碼直到運(yùn)行時才...
    小白將閱讀 1,755評論 4 19
  • 在2015騰訊全球合作伙伴大會「互聯(lián)網(wǎng)+微信」的分論壇上,微信官方公開了微信用戶數(shù)據(jù)。 60% 微信用戶是年輕人,...
    咔哧咔哧的分色閱讀 2,501評論 6 51
  • 聽天氣預(yù)報(bào)說晴天,于是上了五點(diǎn)半的鬧鈴,結(jié)果七點(diǎn)半才起,其間兩個小時發(fā)生了什么,實(shí)屬不知…不過出門后,一抬頭: ...
    禮拜五蘭閱讀 373評論 21 7