1.談?wù)勌摵瘮?shù)的作用
虛函數(shù)的作用,就是讓父類(lèi)指針可以操作子類(lèi)空間中子類(lèi)重寫(xiě)父類(lèi)的虛函數(shù)
2.虛函數(shù)的注意事項(xiàng)
子類(lèi)重寫(xiě)父類(lèi)的虛函數(shù)注意:有繼承、子類(lèi)重寫(xiě)父類(lèi)虛函數(shù)(函數(shù)名、返回值類(lèi)型、參數(shù)類(lèi)型個(gè)數(shù)順序必須完全一致)。
3.虛函數(shù)實(shí)現(xiàn)的原理
當(dāng)父類(lèi)中有虛函數(shù),該虛函數(shù)會(huì)生成虛函數(shù)指針(vfptr) 指向虛函數(shù)表(vftable),如果沒(méi)涉及到繼承,那么該虛函數(shù)表紀(jì)錄的是父類(lèi)的虛函數(shù)地址。
一旦該類(lèi)涉及到繼承,子類(lèi)就會(huì)繼承父類(lèi)的虛函數(shù)指針和虛函數(shù)表,子類(lèi)如果重寫(xiě)父類(lèi)的虛函數(shù),就會(huì)將子類(lèi)重寫(xiě)的虛函數(shù)入口地址更新在虛函數(shù)表中。
這時(shí)父類(lèi)指針操作虛函數(shù),通過(guò)虛函數(shù)指針定位虛函數(shù)表,而表中紀(jì)錄的是子類(lèi)重寫(xiě)的虛函數(shù)地址,所以父類(lèi)指針間接調(diào)用的是子類(lèi)重寫(xiě)的虛函數(shù)。
4.談?wù)剬?duì)純虛函數(shù)的理解
虛函數(shù)不實(shí)現(xiàn)函數(shù)體,就是純虛函數(shù),如果一個(gè)類(lèi)有純虛函數(shù),那么這個(gè)類(lèi)就是抽象類(lèi)。
抽象類(lèi)不能實(shí)例化對(duì)象,抽象類(lèi)只能派生子類(lèi),而且在子類(lèi)中必須重寫(xiě)所有的純虛函數(shù)。
更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問(wèn)題,歡迎咨詢(xún)千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。