函數重載及帶默認參數的函數
函數重載
函數重載(function overload),是函數的一種特殊情況,也是C++當中一種重要函數形式,其表現形式為,函數名相同,但是參數個數或參數順序或參數類型不相同,其每個函數完成不同的功能。
條件:函數名相同,參數個數或參數順序或參數類型不相同(三點可以同時具備)。
使用方法:實參類型要與函數形參匹配
下面舉個簡單地例子
1 //函數重載 2 #include <iostream> 3 using namespace std; 4 5 void fun(int a,int b){ 6 cout<<a<<endl; 7 } 8 void fun(int a,int b,int c){ 9 cout<<c<<endl; 10 } 11 void fun(char a,char b){ 12 cout<<b<<endl; 13 } 14 15 void test(){ 16 fun(3,4); 17 fun('E','F'); 18 fun(2,5,7); 19 } 20 int main(){ 21 test(); 22 return 0; 23 }
函數重載使程序更加細節,掌握函數重載會使你的程序更加精致及可觀性
帶默認參數的函數
我們所說的參數分為兩種,形參和實參,這里的帶默認參數的函數中的參數實際上是實參。
形如:
1 void func(int a = 1,int b = 3,int c = 5){ 2 cout<<a+b+c<<endl; 3 }
如上方代碼所示,將形參設定默認值,這就是帶默認參數的函數
帶默認參數的函數有以下幾種特點,下面我來一一說明。
1.調用函數 func() ,如果不指定實參值,則程序使用形參的值執行代碼
1 void func(int a = 1,int b = 3,int c = 5){ 2 cout<<a+b+c<<endl; 3 } 4 int main(){ 5 func(); //輸出1+3+5 6 func(2); //輸出2+3+5 7 func(2,4); //輸出2+4+5 8 func(4,7,8); //輸出4+7+8 9 10 return 0; 11 }
2.若函數在聲明當中指定了默認形參,則函數定義的形參可不比再設置默認參數,如下:
1 void func(int a = 1,int b = 3,int c = 5) 2 int main(){ 3 func(); //輸出1+3+5 4 func(2); //輸出2+3+5 5 func(2,4); //輸出2+4+5 6 func(4,7,8); //輸出4+7+8 7 8 return 0; 9 } 10 void func(int a,int b,int c){ 11 cout<<a+b+c<<endl; 12 }
3.在設置默認形參的時候,應該遵循靠右原則,即應該從右往左設置形參,如下:
1 void func(int x = 1 ,int y); //錯誤 2 void func(int x = 1, int y = 2); //正確
通俗來講,當形參表中某一個變量設置了默認值,則其右邊的所有值都應該設置默認值
這就是函數重載以及帶默認參數的函數的用法的簡要說明,本人也是正在學習階段,如有錯誤或不恰當之處,請提出,希望大家支持!