C++概念重載、覆蓋、隱藏的使用說(shuō)明
函數(shù)重載:
在C++程序中,可以將語(yǔ)義、功能相似的幾個(gè)函數(shù)用同一個(gè)名字表示,即函數(shù)重載。
重載的實(shí)現(xiàn):
幾個(gè)同名的重載函數(shù)仍然是不同的函數(shù),它們是如何區(qū)分的呢?我們自然想到函數(shù)接口的兩個(gè)要素:參數(shù)與返回值。如果同名函數(shù)的參數(shù)不同(包括類(lèi)型、順序不同),那么容易區(qū)別出它們是不同的函數(shù)。
重載與覆蓋成員函數(shù)被重載的特征:
(1)相同的范圍(在同一個(gè)類(lèi)中);
(2)函數(shù)名字相同;
(3)參數(shù)不同;
(4)virtual 關(guān)鍵字可有可無(wú)。
覆蓋是指派生類(lèi)函數(shù)覆蓋基類(lèi)函數(shù),特征是:
(1)不同的范圍(分別位于派生類(lèi)與基類(lèi));
(2)函數(shù)名字相同;
(3)參數(shù)相同;
(4)基類(lèi)函數(shù)必須有virtual 關(guān)鍵字。
隱藏規(guī)則:本來(lái)僅僅區(qū)別重載與覆蓋并不算困難,但是C++的隱藏規(guī)則使問(wèn)題復(fù)雜性增加了許多。這里“隱藏”是指派生類(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ù)被隱藏(注意別與覆蓋混淆)。
相關(guān)文章
VC++實(shí)現(xiàn)程序開(kāi)機(jī)啟動(dòng)運(yùn)行的方法
這篇文章主要介紹了VC++實(shí)現(xiàn)程序開(kāi)機(jī)啟動(dòng)運(yùn)行的方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08
C++中四種強(qiáng)制轉(zhuǎn)換方式的區(qū)別
在C++中,有四種不同的強(qiáng)制轉(zhuǎn)換方式,它們分別是靜態(tài)轉(zhuǎn)換、動(dòng)態(tài)轉(zhuǎn)換、常量轉(zhuǎn)換和重新解釋轉(zhuǎn)換,下面通過(guò)示例代碼講解每種轉(zhuǎn)換的區(qū)別,感興趣的朋友跟隨小編一起看看吧2023-08-08
Ubuntu中使用VS Code與安裝C/C++插件的教程詳解
這篇文章主要介紹了Ubuntu中使用VS Code與安裝C/C++插件的教程詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Reactor模型詳解與C++實(shí)現(xiàn)框架
Reactor模式是一種事件驅(qū)動(dòng)的并發(fā)處理模型,核心通過(guò)同步I/O多路復(fù)用實(shí)現(xiàn)對(duì)多個(gè)I/O源的監(jiān)聽(tīng),當(dāng)有事件觸發(fā)時(shí),派發(fā)給對(duì)應(yīng)處理器進(jìn)行非阻塞處理,本文給大家介紹Reactor模型詳解與C++實(shí)現(xiàn)框架,感興趣的朋友一起看看吧2025-05-05
詳解C++編程中的sizeof運(yùn)算符與typeid運(yùn)算符
這篇文章主要介紹了C++編程中的sizeof運(yùn)算符與typeid運(yùn)算符,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01
VC++6.0中創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了VC++6.0中創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03

