C++相對(duì)于C語(yǔ)言而言支持函數(shù)重載是其極大的一個(gè)特點(diǎn),相信在使用C語(yǔ)言的時(shí)候大家如果要寫(xiě)一個(gè)實(shí)現(xiàn)兩個(gè)整型數(shù)據(jù)相加的函數(shù)還要寫(xiě)一個(gè)浮點(diǎn)型數(shù)據(jù)相加的函數(shù),那么這兩個(gè)函數(shù)的名字絕對(duì)不可以一樣,這樣無(wú)疑在我們使用這個(gè)函數(shù)的時(shí)候增加了復(fù)雜性,但是在C++中我們卻可以很好的解決這個(gè)問(wèn)題,因?yàn)樵贑++中函數(shù)是支持重載的也就是說(shuō)兩個(gè)函數(shù)的函數(shù)名可以一樣,這樣并不會(huì)出現(xiàn)函數(shù)名重定義的問(wèn)題,但是我們?cè)谑褂玫臅r(shí)候也要遵守一些規(guī)定,這些規(guī)定我們會(huì)在接下來(lái)的討論中提到,下面我們就來(lái)分析在C++中函數(shù)是如何實(shí)現(xiàn)函數(shù)的重載的。
在這里我們用C語(yǔ)言和C++分別寫(xiě)兩個(gè)函數(shù),通過(guò)函數(shù)的符號(hào)表來(lái)觀察函數(shù)名在經(jīng)過(guò)編譯之后究竟是什么形式的
下面就是我們的測(cè)試代碼:
1 #include<iostream> 2 3 using namespace std; 4 5 6 7 int Add(int x, int y) 8 9 {10 11 int z = 0;12 13 z = x + y;14 15 return z;16 17 }18 19 20 21 double Add(double x, double y)22 23 {24 25 double z = 0;26 27 z = x + y;28 29 return z;30 31 }32 33 34 35 int main()36 37 {38 39 cout<<Add(1,3)<<endl;40 41 cout<<Add(1.5,3.5)<<endl;42 43 return 0;44 45 }