C++相對于C語言而言支持函數(shù)重載是其極大的一個(gè)特點(diǎn),相信在使用C語言的時(shí)候大家如果要寫一個(gè)實(shí)現(xiàn)兩個(gè)整型數(shù)據(jù)相加的函數(shù)還要寫一個(gè)浮點(diǎn)型數(shù)據(jù)相加的函數(shù),那么這兩個(gè)函數(shù)的名字絕對不可以一樣,這樣無疑在我們使用這個(gè)函數(shù)的時(shí)候增加了復(fù)雜性,但是在C++中我們卻可以很好的解決這個(gè)問題,因?yàn)樵贑++中函數(shù)是支持重載的也就是說兩個(gè)函數(shù)的函數(shù)名可以一樣,這樣并不會出現(xiàn)函數(shù)名重定義的問題,但是我們在使用的時(shí)候也要遵守一些規(guī)定,這些規(guī)定我們會在接下來的討論中提到,下面我們就來分析在C++中函數(shù)是如何實(shí)現(xiàn)函數(shù)的重載的。
在這里我們用C語言和C++分別寫兩個(gè)函數(shù),通過函數(shù)的符號表來觀察函數(shù)名在經(jīng)過編譯之后究竟是什么形式的
下面就是我們的測試代碼:
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 }