C++函數(shù)重載詳解及實(shí)例代碼
C++函數(shù)的重載
定義
在同一個(gè)作用域中,函數(shù)名相同,函數(shù)的參數(shù)列表不同的函數(shù)之間構(gòu)成重載關(guān)系,在不同作用域中的同名函數(shù)遵循標(biāo)識(shí)符隱藏的原則
ATTENTION:重載與函數(shù)的返回值類型無關(guān),因?yàn)槁暶饕粋€(gè)函數(shù)不需要返回類型,所以無法用來區(qū)分哪個(gè)函數(shù)
常函數(shù)和普通成員函數(shù)之間構(gòu)成重載,重載時(shí)常對(duì)象調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù)
class A{
…
public:
void getVal()const{…}
void getVal(){…}
};
int main(){
const A a;
A b;
a.getVal(); //常函數(shù)
b.getVal(); //普通成員函數(shù)
}
不同namespace中的函數(shù)也可以通過名字空間指令/名字空間聲明的方式讓他們?cè)谕粋€(gè)作用域,進(jìn)而構(gòu)成重載關(guān)系
//overloaded functions in different namespaces
#include<iosteam>
using namespace std;
namespace ns1{
void fa(int i){cout<<"in ns1:i="<<i<<endl;}
}
namespace ns2{
void fa(double d){cout<<"in ns2:i="<<d<<endl;}
}
int main(){
//使用namespace 指令的方式
using namespace ns1;
using namespace ns2;
fa(10);
fa(3.14);
return 0;
}
重載匹配原則
完全匹配>常量轉(zhuǎn)換/常量匹配>升級(jí)轉(zhuǎn)換>標(biāo)準(zhǔn)轉(zhuǎn)換>自定義轉(zhuǎn)換>省略號(hào)匹配
Note:編程中,盡量做到完全匹配,如果實(shí)在不能完全匹配,一般會(huì)根據(jù)上述原則進(jìn)行選擇
重載原理
C++編譯器是通過對(duì)函數(shù)進(jìn)行換名,將參數(shù)列表信息體現(xiàn)在底層函數(shù)名中,從而實(shí)現(xiàn)函數(shù)的重載,匯編函數(shù)名按照 <作用域+返回類型+函數(shù)名+參數(shù)列表> 的方式體現(xiàn)在匯編中,eg:_Z4showii:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C語(yǔ)言中0數(shù)組\柔性數(shù)組的使用詳解
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中0數(shù)組\柔性數(shù)組使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
C數(shù)據(jù)結(jié)構(gòu)中串簡(jiǎn)單實(shí)例
這篇文章主要介紹了C數(shù)據(jù)結(jié)構(gòu)中串簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
Qt使用SQLite數(shù)據(jù)庫(kù)存儲(chǔ)管理圖片文件
這篇文章主要為大家詳細(xì)介紹了Qt如何使用SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)存儲(chǔ)管理圖片文件的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04
c++基礎(chǔ)算法動(dòng)態(tài)DP解決CoinChange問題
這篇文章主要為大家介紹了c++基礎(chǔ)算法如何利用動(dòng)態(tài)DP來解決Coin Change的問題示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
C++實(shí)現(xiàn)獲取本機(jī)MAC地址與IP地址
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)獲取本機(jī)MAC地址與IP地址的兩種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例
大家好,本篇文章主要講的是C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄實(shí)例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02
C++ 關(guān)于 CMFCPropertyGridCtrl 的使用方法
這篇文章主要介紹了C++ 關(guān)于 CMFCPropertyGridCtrl 的使用方法的相關(guān)資料,需要的朋友可以參考下2015-06-06
C語(yǔ)言實(shí)現(xiàn)可增容動(dòng)態(tài)通訊錄詳細(xì)過程
這篇文章主要為大家介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易通訊錄的完整流程,此通訊錄還可以增容,并且每個(gè)環(huán)節(jié)都有完整代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-05-05

