標籤:c++ 函數重載 重載
c++中的函數重載
什麼是函數重載
重載函數是函數的一種特殊情況,為方便使用,C++允許在同一範圍中聲明幾個功能類似的同名函數,但是這些同名函數的形式參數(指參數的個數、類型或者順序)必須不同,這組函數被稱為重載函數。
函數重載的作用
重載函數常用來實現功能類似而所處理的資料類型不同的問題,能減少函數名的數量,提高程式的可讀性。
重載函數的構成說明
定義一個類,添加一系列函數名相同的函數,但參數形式各有不同,測試一下能否構成重載。
#include <iostream>using namespace std;class Base{ public: void func(int a){cout << "this is "<< a <<endl;} void func(string a){cout << "this is " << a <<endl;} void func(int a,int b){cout << "this is "<< a <<endl;} void func(int a,string b){cout << "this is "<< a <<endl;} //錯誤的重載1 int func(int a,int b){cout << "this is "<< a <<endl;} //錯誤的重載2 void func(const int a,int b){cout << "this is "<< a <<endl;} //錯誤的重載3 void func(int b,int a){cout << "this is "<< a <<endl;} };int main(){ Base b; b.func(22); b.func("test"); return 0;}
??以上程式執行編譯會報錯:
‘void Base::func(int)’ cannot be overloaded ...
??即函數不能構成重載,原因分別為:
class Base{ public: void func(int &a){cout << "this is "<< a <<endl;} void func(const int &a){cout << "this is "<< a <<endl;}}
class Base{ public: void func(int a){cout << "this is "<< a <<endl;} void func(int b){cout << "this is "<< b <<endl;}}
- 備忘
函數重載是c++比較重要的概念,涉及比較偏門的使用情境,比如參數有const修飾,就會引來比較蛋疼的疑惑,這裡整理的還不夠充分,後期將逐步進行整理和完善。
著作權聲明:本文為csdn博主[applebite](http://blog.csdn.net/applebite) 原創文章,轉載請註明出處,侵權必究。
c++中的函數重載