c++是什么 C 中父類(lèi)的虛函數(shù)必須要實(shí)現(xiàn)嗎?
C 中父類(lèi)的虛函數(shù)必須要實(shí)現(xiàn)嗎?實(shí)例化類(lèi)的虛擬函數(shù)必須有一個(gè)定義。如果只定義了具有虛函數(shù)的類(lèi)而沒(méi)有實(shí)現(xiàn)虛函數(shù),則類(lèi)編譯可以通過(guò)!R純虛函數(shù)出現(xiàn)在接口類(lèi)中,賦值為0,不要為函數(shù)賦值函數(shù)地址,以免類(lèi)實(shí)例
C 中父類(lèi)的虛函數(shù)必須要實(shí)現(xiàn)嗎?
實(shí)例化類(lèi)的虛擬函數(shù)必須有一個(gè)定義。如果只定義了具有虛函數(shù)的類(lèi)而沒(méi)有實(shí)現(xiàn)虛函數(shù),則類(lèi)編譯可以通過(guò)!R純虛函數(shù)出現(xiàn)在接口類(lèi)中,賦值為0,不要為函數(shù)賦值函數(shù)地址,以免類(lèi)實(shí)例化!純虛函數(shù)沒(méi)有定義,如果實(shí)現(xiàn)的不是純虛函數(shù)!R一般成員函數(shù)只能聲明,前提是不能在應(yīng)用程序中調(diào)用該函數(shù),否則會(huì)因?yàn)檎也坏蕉x而發(fā)生連接錯(cuò)誤
為什么要用虛函數(shù)?
當(dāng)使用基類(lèi)指針指向不同派生類(lèi)的對(duì)象時(shí),如果基類(lèi)指針調(diào)用其虛成員函數(shù),它將調(diào)用實(shí)際指向?qū)ο蟮某蓡T函數(shù),而不是基類(lèi)中定義的成員函數(shù)(只要派生類(lèi)重寫(xiě)成員函數(shù))。如果它不是虛函數(shù),則無(wú)論基類(lèi)指針指向哪個(gè)派生類(lèi)對(duì)象,都將調(diào)用在基類(lèi)中定義的函數(shù)。