C++概念重載、覆蓋、隱藏的使用說明
函數(shù)重載:
在C++程序中,可以將語義、功能相似的幾個函數(shù)用同一個名字表示,即函數(shù)重載。
重載的實現(xiàn):
幾個同名的重載函數(shù)仍然是不同的函數(shù),它們是如何區(qū)分的呢?我們自然想到函數(shù)接口的兩個要素:參數(shù)與返回值。如果同名函數(shù)的參數(shù)不同(包括類型、順序不同),那么容易區(qū)別出它們是不同的函數(shù)。
重載與覆蓋成員函數(shù)被重載的特征:
(1)相同的范圍(在同一個類中);
(2)函數(shù)名字相同;
(3)參數(shù)不同;
(4)virtual 關(guān)鍵字可有可無。
覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是:
(1)不同的范圍(分別位于派生類與基類);
(2)函數(shù)名字相同;
(3)參數(shù)相同;
(4)基類函數(shù)必須有virtual 關(guān)鍵字。
隱藏規(guī)則:本來僅僅區(qū)別重載與覆蓋并不算困難,但是C++的隱藏規(guī)則使問題復雜性增加了許多。這里“隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:
(1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時,不論有無virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒有virtual關(guān)鍵字。此時,基類的函數(shù)被隱藏(注意別與覆蓋混淆)。
相關(guān)文章
C語言結(jié)構(gòu)及隊列實現(xiàn)示例詳解
這篇文章主要為大家介紹了C語言實現(xiàn)隊列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
MFC中動態(tài)創(chuàng)建控件以及事件響應實現(xiàn)方法
這篇文章主要介紹了MFC中動態(tài)創(chuàng)建控件以及事件響應實現(xiàn)方法,詳細講解了MFC中動態(tài)創(chuàng)建控件以及事件響應的概念與實現(xiàn)方法,具有一定的實用價值,需要的朋友可以參考下2014-10-10
C++ STL入門教程(7) multimap、multiset的使用
這篇文章主要介紹了C++ STL入門教程第七篇,multimap一對多索引,multiset多元集合的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
C++基于socket多線程實現(xiàn)網(wǎng)絡聊天室
這篇文章主要為大家詳細介紹了C++基于socket多線程實現(xiàn)網(wǎng)絡聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
C++實現(xiàn)LeetCode(18.四數(shù)之和)
這篇文章主要介紹了C++實現(xiàn)LeetCode(18.四數(shù)之和),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07

