函數重載以及帶默認參數的函數


函數重載及帶默認參數的函數

函數重載

  函數重載(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); //正確

 

 通俗來講,當形參表中某一個變量設置了默認值,則其右邊的所有值都應該設置默認值

 

 

這就是函數重載以及帶默認參數的函數的用法的簡要說明,本人也是正在學習階段,如有錯誤或不恰當之處,請提出,希望大家支持!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM