c++的C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?

2022-10-31 23:05

1個(gè)回答
指針的類(lèi)型是可以強(qiáng)行轉(zhuǎn)來(lái)轉(zhuǎn)去的。普通情況你轉(zhuǎn)什么類(lèi)型就調(diào)對(duì)應(yīng)類(lèi)型的同名函數(shù)。但是虛函數(shù)實(shí)現(xiàn)多態(tài)后,盡管可能你把指針轉(zhuǎn)成父類(lèi)的類(lèi)型,但是因?yàn)閯?chuàng)建的時(shí)候是子類(lèi)的類(lèi)型,它還是會(huì)調(diào)用子類(lèi)的這個(gè)虛函數(shù)。
這樣可以統(tǒng)一代碼且正確運(yùn)用子類(lèi)的新特性。
也因?yàn)槿绱?,如果父?lèi)虛函數(shù)不做實(shí)現(xiàn)而=0成為純虛函數(shù),那么父類(lèi)就不可以實(shí)例化,這個(gè)沒(méi)有實(shí)現(xiàn)的虛函數(shù)也永遠(yuǎn)不會(huì)調(diào)用。因?yàn)楦鶕?jù)多態(tài)的動(dòng)態(tài)聯(lián)編,總是會(huì)調(diào)用實(shí)例化了的子類(lèi)的該方法。指針強(qiáng)行轉(zhuǎn)成父類(lèi)也不會(huì)調(diào)用純虛函數(shù)。
相關(guān)問(wèn)答
鉤子函數(shù)的原理c/c++
1個(gè)回答2022-10-31 12:21
觀望。。。。
在C++中什么時(shí)候用虛函數(shù)
1個(gè)回答2022-11-13 02:42
你還不知道怎么寫(xiě)函數(shù)體的時(shí)候!
C++虛函數(shù)怎么理解?
1個(gè)回答2022-09-26 10:33
一個(gè)函數(shù)被定義成虛函數(shù),那么他的子類(lèi)就能重寫(xiě)這個(gè)方法了,當(dāng)用子類(lèi)對(duì)象調(diào)用方法的時(shí)候,就是調(diào)用的子類(lèi)中的方法。 還有他是用來(lái)實(shí)現(xiàn)多態(tài)的。
求教,c++中什么時(shí)候使用虛函數(shù)?
2個(gè)回答2022-09-23 00:28
虛函數(shù)的應(yīng)用很多,其中最常用的是虛函數(shù)的覆蓋技術(shù)
C,C+和C++它們有什么區(qū)別
2個(gè)回答2022-10-15 08:25
我覺(jué)得是側(cè)重點(diǎn)不一樣 c語(yǔ)言是一門(mén)相對(duì)比較基礎(chǔ)的語(yǔ)言 而c++是一門(mén)面向?qū)ο蟮恼Z(yǔ)言 c++中引用了類(lèi)的概念,和c中的結(jié)構(gòu)體相似 使問(wèn)題更容易解決,用的更廣/ 所以,現(xiàn)在都是象c++...
全文
C++的成員函數(shù)和普通函數(shù)
1個(gè)回答2023-10-22 16:24
類(lèi)成員的函數(shù)還有一個(gè)作用就是命名空間
c哩c哩是什么意思
1個(gè)回答2023-01-29 07:42
再來(lái)一個(gè)波板糖
c++中虛函數(shù)如何定義,使用時(shí)應(yīng)該注意什么?
1個(gè)回答2022-10-23 03:56
虛函數(shù)的定義要這樣,virtual 返回類(lèi)型+函數(shù)名(參數(shù)); 虛函數(shù)調(diào)用時(shí)要注意,在類(lèi)繼承的時(shí)候,子類(lèi)調(diào)用的虛函數(shù)和父類(lèi)中虛函數(shù)的區(qū)別
八C哦,八C哦,八C八C八C哦。什么歌
2個(gè)回答2023-10-12 12:15
Show Me Your BBA SAE—DJ Hanmin
熱門(mén)問(wèn)答