成員函式虛函式玩一下虛函式。。。

2021-09-06 10:07:19 字數 2270 閱讀 9384

在本文中,我們主要介紹成員函式虛函式的內容,自我感覺有個不錯的建議和大家分享下

/*

* 程式的版權和版本宣告部份

* 檔名稱: x.cpp

* 完成日期: 2023年 5月 31 日

* 版本號: v1.0

* 輸入描述:

* 問題描述:

1)請寫出程式的執行結果,並在上機時對比理解

請答覆:當基類的指標指向派生類時,用指標呼叫同名成員函式,執行的是基類的成員函式,

還是派生類的成員函式?為什麼會這樣?

(2)如果將vehicle類的定義修改為虛函式,其餘不變,請寫出程式的執行結果,並在上機時對比理解

class vehicle

問題一:

執行的是基類的成員函式,因為指標式是基型別的,而且沒有宣告為虛函式。所以只能拜訪基類成員函式。

/*

* 程式的版權和版本宣告部份

* 檔名稱: x.cpp

* 完成日期: 2023年 月 日

* 版本號: v1.0

* 輸入描述:

* 問題描述:

1)請寫出程式的執行結果,並在上機時對比理解

請答覆:當基類的指標指向派生類時,用指標呼叫同名成員函式,執行的是基類的成員函式,

還是派生類的成員函式?為什麼會這樣?

(2)如果將vehicle類的定義修改為虛函式,其餘不變,請寫出程式的執行結果,並在上機時對比理解

class vehicle

每日一道理

因為自信,在呀呀學語時,我靠著纖嫩的雙腿,邁出人生的第一步;因為自信,我一次次將第一名的獎狀高高舉起;因為自信,我毫不吝惜地剪失落飄逸的長髮,在運動場上展現風采……感謝自信,它給了我一雙翅膀,讓我在電閃雷鳴中去飛翔,在風雨中去搏擊人生!

問題二:

此時執行的是派生類成員函式,因為基類函式為虛函式。在派生類中又有了定義,呼叫函式的時候,指標指向**就呼叫哪個。這就是虛函式的利益。

函式的多型性在這裡有了很好的體現,所謂多型性,就是同乙個函式名,函式體不同,函式過載也屬於多型性。

/*

* 程式的版權和版本宣告部份

* 檔名稱: x.cpp

* 完成日期: 2023年 5月31 日

* 版本號: v1.0

* 輸入描述:

* 問題描述:

1)請寫出程式的執行結果,並在上機時對比理解

請答覆:當基類的指標指向派生類時,用指標呼叫同名成員函式,執行的是基類的成員函式,

還是派生類的成員函式?為什麼會這樣?

(2)如果將vehicle類的定義修改為虛函式,其餘不變,請寫出程式的執行結果,並在上機時對比理解

class vehicle

;class car: public vehicle //汽車

問題三:

純虛函式是沒有物件的,所以那兩行應當注釋失落。

使用純虛函式,在呼叫和函式是更加靈活,指**打**,動態的多型性,有了很好的解釋。。

文章結束給大家分享下程式設計師的一些笑話語錄: 問路

有乙個駕駛熱氣球的人發現他迷路了。他降低了飛行的高度,並認出了地面 上的乙個人。他繼續下降高度並對著那個人大叫,「打擾一下,你能告訴我我 在哪嗎?」

下面那個人說:「是的。你在熱氣球裡啊,盤旋在 30 英呎的空中」。

熱氣球上的人說:「你一定是在 it 部門做技術工作」。

「沒錯」,地面上的人說到,「你是怎麼知道的?」

「呵呵」,熱氣球上的人說,「你告訴我的每件事在技術上都是對的,但對都沒 有用」。

地面上的人說,「你一定是管理層的人」。

「沒錯」,熱氣球上的人說,「可是你是怎麼知道的?」

「呵呵」,地面上的那人說到,「你不知道你在**,你也不知道你要去哪,你 總希望我能幫你。你現在和我們剛見面時還在原來那個地方,但現在卻是我 錯了」。

--------------------------------- 原創文章 by

成員函式和虛函式

---------------------------------

成員函式呼叫虛函式

在乙個基類或派生類的成員函式中可以直接呼叫該類等級中的虛函式,例如 class a void act2 virtual void act3 virtual void act4 void act5 void act4 void act5 在上例情況下,this指向b,所以a act2 呼叫b act3...

成員函式 虛函式 this指標

1 成員函式的實現機制和普通 全域性 函式沒有本質區別,對編譯器而言,經過名稱處理以後 在函式名前加上命名空間 類名 乙個成員函式就是普通函式了,在編譯後的 區域有確定的函式體和入口位址。最大的差別在於發生呼叫時,對於成員函式,編譯器會隱含語句push this,其中this指標指向物件的位址,這就...

虛指標,虛函式,虛函式表,純虛函式

虛指標 虛繼承 在使用多重繼承時,如存在 class a 有m a變數 class a1 virtual public a,m a1 class a2 virtual public a m a2 class b public a1,public a2 m b 時 存在以下記憶體儲存順序 虛指標 指向...