函數(shù)重載是用來(lái)描述同名函數(shù)具有相同或者相似功能,但數(shù)據(jù)類型或者是參數(shù)不同的函數(shù)管理操作的稱呼!
我們來(lái)舉一個(gè)實(shí)際應(yīng)用中的例子來(lái)說(shuō)明問(wèn)題:我們要進(jìn)行兩種不同數(shù)據(jù)類型的和操作為了實(shí)現(xiàn)它,在c語(yǔ)言中我們就要寫兩個(gè)不同名稱的涵數(shù)來(lái)進(jìn)行區(qū)分例如:int testa(int a,int b)和float testb(float a,floatb),這樣字是沒(méi)有問(wèn)題,但是總有一點(diǎn)不好,這么兩個(gè)具備極其相似操作函數(shù)我們卻起兩個(gè)不同的名字,這樣子不是很好管理,所以c++為了方便程序員編寫程序特別引入了函數(shù)重載的概念來(lái)解決此問(wèn)題,我們看看如下的代碼!
//程序作者:管寧
//站點(diǎn):www.cndev-lab.com
//所有稿件均有版權(quán),如要轉(zhuǎn)載,請(qǐng)務(wù)必出處和作者
#include
using namespace std;
int test(int a,int b);
float test(float a,float b);
void main()
{
cout << test(1,2) << endl << test(2.1f,3.14f) << endl;
cin.get();
}
int test(int a,int b)
{
return a+b;
}
float test(float a,float b)
{
return a+b;
}
在上面的程序中我們同樣使用了兩個(gè)名為test的函數(shù)來(lái)描述int類型和操作的和float類型和操作,這樣一來(lái)就方便了程序員對(duì)相同或者相似功能函數(shù)的管理!
看了上面的解釋很多人會(huì)問(wèn),這么一來(lái)計(jì)算機(jī)該如何來(lái)判斷同名稱函數(shù)呢?操作的時(shí)候會(huì)不會(huì)造成選擇錯(cuò)誤呢?
回答是否定的,c++內(nèi)部利用一種叫做名稱粉碎的機(jī)智來(lái)內(nèi)部重命名同名函數(shù),上面的例子在計(jì)算重命名后可能會(huì)是testii和testff 他們是通過(guò)參數(shù)的類型或個(gè)數(shù)來(lái)內(nèi)部重命名的,關(guān)于這個(gè)作為程序員不需要去了解它,說(shuō)一下只是為了解釋大家心中的疑問(wèn)而已,好了,關(guān)于函數(shù)學(xué)重載的基礎(chǔ)知識(shí)就說(shuō)到這里,至于如何利用這個(gè)功能,就靠大家在日常的學(xué)習(xí)或者是工作中逐漸摸索了!
我們來(lái)舉一個(gè)實(shí)際應(yīng)用中的例子來(lái)說(shuō)明問(wèn)題:我們要進(jìn)行兩種不同數(shù)據(jù)類型的和操作為了實(shí)現(xiàn)它,在c語(yǔ)言中我們就要寫兩個(gè)不同名稱的涵數(shù)來(lái)進(jìn)行區(qū)分例如:int testa(int a,int b)和float testb(float a,floatb),這樣字是沒(méi)有問(wèn)題,但是總有一點(diǎn)不好,這么兩個(gè)具備極其相似操作函數(shù)我們卻起兩個(gè)不同的名字,這樣子不是很好管理,所以c++為了方便程序員編寫程序特別引入了函數(shù)重載的概念來(lái)解決此問(wèn)題,我們看看如下的代碼!
//程序作者:管寧
//站點(diǎn):www.cndev-lab.com
//所有稿件均有版權(quán),如要轉(zhuǎn)載,請(qǐng)務(wù)必出處和作者
#include
using namespace std;
int test(int a,int b);
float test(float a,float b);
void main()
{
cout << test(1,2) << endl << test(2.1f,3.14f) << endl;
cin.get();
}
int test(int a,int b)
{
return a+b;
}
float test(float a,float b)
{
return a+b;
}
在上面的程序中我們同樣使用了兩個(gè)名為test的函數(shù)來(lái)描述int類型和操作的和float類型和操作,這樣一來(lái)就方便了程序員對(duì)相同或者相似功能函數(shù)的管理!
看了上面的解釋很多人會(huì)問(wèn),這么一來(lái)計(jì)算機(jī)該如何來(lái)判斷同名稱函數(shù)呢?操作的時(shí)候會(huì)不會(huì)造成選擇錯(cuò)誤呢?
回答是否定的,c++內(nèi)部利用一種叫做名稱粉碎的機(jī)智來(lái)內(nèi)部重命名同名函數(shù),上面的例子在計(jì)算重命名后可能會(huì)是testii和testff 他們是通過(guò)參數(shù)的類型或個(gè)數(shù)來(lái)內(nèi)部重命名的,關(guān)于這個(gè)作為程序員不需要去了解它,說(shuō)一下只是為了解釋大家心中的疑問(wèn)而已,好了,關(guān)于函數(shù)學(xué)重載的基礎(chǔ)知識(shí)就說(shuō)到這里,至于如何利用這個(gè)功能,就靠大家在日常的學(xué)習(xí)或者是工作中逐漸摸索了!