C++中的函數重載

來源:互聯網
上載者:User

函數重載是用來描述同名函數具有相同或者相似功能,但資料類型或者是參數不同的函數管理操作的稱呼。

我們來舉一個實際應用中的例子來說明問題:我們要進行兩種不同資料類型的和操作為了實現它,在c語言中我們就要寫兩個不同名稱的涵數來進行區分例如:int testa(int a,int b)和float testb(float a,floatb),這樣字是沒有問題,但是總有一點不好,這麼兩個具備極其相似操作函數我們卻起兩個不同的名字,這樣子不是很好管理,所以c++為了方便程式員編寫程式特別引入了函數重載的概念來解決此問題,我們看看如下的代碼:

#include <iostream>
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;
}

在上面的程式中我們同樣使用了兩個名為test的函數來描述int類型和操作的和float類型和操作,這樣一來就方便了程式員對相同或者相似功能函數的管理。

看了上面的解釋很多人會問,這麼一來電腦該如何來判斷同名稱函數呢?操作的時候會不會造成選擇錯誤呢?

回答是否定的。c++內部利用一種叫做名稱粉碎的機智來內部重新命名同名函數,上面的例子在計算重新命名後可能會是testii和testff 他們是通過參數的類型或個數來內部重新命名的,關於這個作為程式員不需要去瞭解它,說一下只是為瞭解釋大家心中的疑問而已。好了,關於函數學重載的基礎知識就說到這裡,至於如何利用這個功能,就靠大家在日常的學習或者是工作中逐漸摸索了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.