C++ 重載、重寫(xiě)、隱藏的區(qū)別

//聯(lián)系人:石虎?QQ:1224614774?昵稱:嗡嘛呢叭咪哄

一、概念

1.Overload(重載):

在C++程序中,可以將語(yǔ)義、功能相似的幾個(gè)函數(shù)用同一個(gè)名字表示,但參數(shù)或返回值不同(包括類(lèi)型、順序不同),即函數(shù)重載。

(1)相同的范圍(在同一個(gè)類(lèi)中);

(2)函數(shù)名字相同;

(3)參數(shù)不同;

(4)virtual?關(guān)鍵字可有可無(wú)。

2.Override(覆蓋):是指派生類(lèi)函數(shù)覆蓋基類(lèi)函數(shù),特征是:

(1)不同的范圍(分別位于派生類(lèi)與基類(lèi));

(2)函數(shù)名字相同;

(3)參數(shù)相同;

(4)基類(lèi)函數(shù)必須有virtual?關(guān)鍵字。

注:重寫(xiě)基類(lèi)虛函數(shù)的時(shí)候,會(huì)自動(dòng)轉(zhuǎn)換這個(gè)函數(shù)為virtual函數(shù),不管有沒(méi)有加virtual,因此重寫(xiě)的時(shí)候不加virtual也是可以的,不過(guò)為了易讀性,還是加上比較好。

3.Overwrite(重寫(xiě)):隱藏,是指派生類(lèi)的函數(shù)屏蔽了與其同名的基類(lèi)函數(shù),規(guī)則如下:

(1)如果派生類(lèi)的函數(shù)與基類(lèi)的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無(wú)virtual關(guān)鍵字,基類(lèi)的函數(shù)將被隱藏(注意別與重載混淆)。

(2)如果派生類(lèi)的函數(shù)與基類(lèi)的函數(shù)同名,并且參數(shù)也相同,但是基類(lèi)函數(shù)沒(méi)有virtual關(guān)鍵字。此時(shí),基類(lèi)的函數(shù)被隱藏(注意別與覆蓋混淆)。

謝謝!!!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容