<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            C/C++函數重載與缺省參數

            時間:2025-06-09 05:11:29 C語言 我要投稿
            • 相關推薦

            C/C++函數重載與缺省參數

              C語言是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。下面是小編分享的C/C++函數重載與缺省參數,一起來看一下吧。

              函數重載

              函數多態是C++在C語言的基礎上新增的功能,默認參數讓你能夠使用不同數目的參數調用同一個函數,而函數多態(函數重載)讓你能夠使用多個同名的函數。“多態”指的是有多種形式因此函數多態允許函數可以有多種形式,類似的術語“函數重載”指的是可以有多個同名的函數,因此對名稱進行了重載,它們兩個看起來是同一回事,但我們會通常使用函數重載,可以通過函數重載來設計一系列的函數,它們完成相同的工作,但使用不同的參數列表。

              重載函數就像是有多鐘含義的動詞。函數重載的關鍵是函數的參數列表(也稱為函數特征標【function 、signature】)。如果兩個函數的參數數目和類型相同,同時參數的排列順序也相同,則它們的特征標相同,而變量名是無關緊要的。C++允許定義名稱相同的函數,條件是它們的特征標不同,如果參數數目和/或參數類型不同,則特征標也不同。

              我們從代碼里面看下:

              ////C C++

              ////c語言:面向過程的語言,嚴格的先后順序,便于理解

              ////c++語言:面向對象的語言,先后順序沒有那么嚴格

              //

              ////C++是C的升級

              ////C++比C語言多了兩個關鍵的知識,1、類和對象;2、模板

              //

              ////函數重載

              ////對于相同(相似)的函數行為,用一個函數名進行管理

              ////一個函數名管理多個函數體

              ////構成函數重載的條件:函數名必須一致,參數列表不一致

              ////參數列表不一致:1、參數列表的個數不一致;2、參數對應位置的類型不一致

              //

              //struct MyPoint

              //{

              // int row, col;

              //};

              //

              ////int MyDev(int a, int b)

              ////{

              //// return a / b;

              ////}

              ////

              ////char MyDev(int c, int d)

              ////{

              //// return c / d;

              ////}

              //

              //int MyMul(int a, char c)

              //{

              // return a * c;

              //}

              //

              //int MyMul(char c, int a)

              //{

              // return a * c;

              //}

              //

              //int myAdd(int a, int b, int c)

              //{

              // return a + b + c;

              //}

              //

              //int myAdd(int a, int b)

              //{

              // return a + b;

              //}

              //

              //double myAdd(double a, double b)

              //{

              // return a + b;

              //}

              //

              //MyPoint myAdd(MyPoint a, MyPoint b)

              //{

              // MyPoint tempPos;

              // tempPos.row = a.row + b.row;

              // tempPos.col = a.col + b.col;

              // return tempPos;

              //}

              //

              //void main()

              //{

              // printf("%f ",myAdd(1.3,2.89));

              // printf("%d ", myAdd(1, 2));

              //

              //}

              //函數的缺省參數

              //在函數定義的時候,給形參給出初始值。

              //當函數調用時,就可以不用再給實參,默認使用初始值

              //函數調用給出實參,會用實參去替換掉默認的初始值

              //缺省參數只能由后往前缺省

              //缺省參數和函數重載組合會產生二義性

              //缺省參數聲明和定義分開

              int myMul(int a = 1, int b = 4);

              //int MyAdd(int a, int b)

              //{

              // return a + b;

              //}

              //

              //int MyAdd(int a, int b, int c = 1)

              //{

              // return a + b + c;

              //}

              void mySwap(int a, int b)

              {

              int c = a;

              a = b;

              b = c;

              }

              void main()

              {

              int num1 = 10;

              int num2 = 20;//兩個變量是通過一段流程語句來的

              //printf("%d ", MyAdd(num1, num2));

              //printf("%d ", MyAdd());

              mySwap(num1, num2);

              printf("num1 = %d num2 = %d ", num1, num2);

              }

              int myMul(int a, int b)

              {

              return a * b;

              }

            【C/C++函數重載與缺省參數】相關文章:

            C++中可以接受任意多個參數的函數定義方法08-07

            C/C++函數調用的方式07-29

            C++調用C函數的方法05-21

            C語言main函數的參數07-25

            C++函數模板04-10

            C++函數考點歸納05-19

            C語言函數參數傳遞問題03-30

            C語言函數參數傳遞規律11-19

            C語言函數調用與參數傳遞08-05

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看