C++中為什么一定要出現(xiàn)虛函數(shù),用函數(shù)覆蓋不可以解決問題么,換句話說,虛函數(shù)和函數(shù)覆蓋有什么區(qū)別

2022-09-05 07:55

3個回答
簡單點跟你說吧,虛函數(shù)就是用來被繼承類重載的,重寫這個函數(shù)一樣.功能全變了.父類的這個虛方法功能不變.當(dāng)然可以調(diào)用父類的.這是包含面相對象的思想的東西.編多了自能體會虛函數(shù)的好處.現(xiàn)在你把它但成一般函數(shù)對待就行了.
虛函數(shù)可以實現(xiàn)動態(tài)綁定,比如父類有個虛函數(shù)函數(shù)f和子類中重定義了f
Father *p=new Son;
則p->f調(diào)用的就是子類的
Father *p=new Father;
則p->f調(diào)用的是父類的函數(shù)f。
對于p->f在編譯階段是不知道要調(diào)用那個函數(shù)的,只有在執(zhí)行階段才能確定。
而函數(shù)覆蓋在編譯階段就確定了,父類就調(diào)用父類的,子類就調(diào)用子類的(父類的被覆蓋了)。
虛函數(shù)的用途只體現(xiàn)在用指針構(gòu)造函數(shù)的情況下
比如 A B 兩個類,B是A的子類,如果 A 和 B 都有一個函數(shù)叫做 C
那么 A *a = new B;
如果 C 不是虛函數(shù)的話
調(diào)用 a->C() 的話,調(diào)用的就是 A 的 C
如果 C 是虛函數(shù)的話
調(diào)用 a->C() 的話,調(diào)用的就是 B 的 C
虛函數(shù)就是為了起這個作用的
而正常實例化的話,虛函數(shù)幾乎不起作用
我應(yīng)該沒說錯。
相關(guān)問答
在C++中什么時候用虛函數(shù)
1個回答2022-11-13 02:42
你還不知道怎么寫函數(shù)體的時候!
C++虛函數(shù)怎么理解?
1個回答2022-09-26 10:33
一個函數(shù)被定義成虛函數(shù),那么他的子類就能重寫這個方法了,當(dāng)用子類對象調(diào)用方法的時候,就是調(diào)用的子類中的方法。 還有他是用來實現(xiàn)多態(tài)的。
函蓋乾坤是什么意思
1個回答2024-02-27 06:40
函蓋乾坤釋義: 佛教語。原指泯合無間。后指言語詩文契理或一心專志而絕無雜念。
虛函數(shù)在什么時候被替換為
1個回答2023-06-09 22:21
啥意思? 沒描述清楚。 虛函數(shù)實現(xiàn)多態(tài), 多態(tài) 運行時綁定
函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝函姝我愛你
3個回答2022-05-15 18:03
這么強(qiáng)烈,支持你!
c++的C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?
1個回答2022-10-31 23:05
指針的類型是可以強(qiáng)行轉(zhuǎn)來轉(zhuǎn)去的。普通情況你轉(zhuǎn)什么類型就調(diào)對應(yīng)類型的同名函數(shù)。但是虛函數(shù)實現(xiàn)多態(tài)后,盡管可能你把指針轉(zhuǎn)成父類的類型,但是因為創(chuàng)建的時候是子類的類型,它還是會調(diào)用子類的這個虛函數(shù)。 這樣可...
全文
基類中私有的虛函數(shù)可以被替換嗎?
1個回答2022-12-08 08:44
如果基類定義的純虛函數(shù),那么子類繼承下來的也是純虛函數(shù),如果不給予實現(xiàn),那么便不能創(chuàng)建子類的實例,如果基類定義的是非純虛函數(shù),那么子類繼承下來的也是非純虛函數(shù)。都可以不予實現(xiàn),因為自動繼承下來了,看你...
全文
指數(shù)函數(shù)的反函數(shù)是什么?
1個回答2024-09-02 02:54
指數(shù)函數(shù)的反函數(shù)是對數(shù)函數(shù)。 對數(shù)函數(shù)的一般形式為y=logax,它實際上就是指數(shù)函數(shù)的反函數(shù)(圖象關(guān)于直線y=x對稱的兩函數(shù)互為反函數(shù)),可表示為x=a^y。 因此指數(shù)函數(shù)里對于a存在規(guī)定...
全文
函數(shù)和一次函數(shù)的來源故事?
1個回答2024-03-07 14:23
“函數(shù)”一詞最初是由德國的數(shù)學(xué)家萊布尼茨在17世紀(jì)首先采用的,當(dāng)時萊布尼茨用“函數(shù)”這一詞來表示變量x的冪,即x2,x3,….接下來萊布尼茨又將“函數(shù)”這一詞用來表示曲線上的橫坐標(biāo)、縱坐標(biāo)、切線...
全文
求教,c++中什么時候使用虛函數(shù)?
2個回答2022-09-23 00:28
虛函數(shù)的應(yīng)用很多,其中最常用的是虛函數(shù)的覆蓋技術(shù)