<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # C++ 中的函數重載 > 原文: [https://beginnersbook.com/2017/08/cpp-function-overloading/](https://beginnersbook.com/2017/08/cpp-function-overloading/) 函數重載是 [C++ 編程](https://beginnersbook.com/2017/08/c-plus-plus-tutorial-for-beginners/)的一個特性,它允許我們有多個具有相同名稱但不同參數列表的函數,當我說參數列表時,它表示參數的數據類型和順序,例如函數`myfuncn(int a, float b)`的參數列表是`(int, float)`,它與函數`myfuncn(float a, int b)`參數列表`(float, int)`不同。函數重載是[編譯時多態](https://beginnersbook.com/2017/08/cpp-polymorphism/)。 現在我們知道什么是參數列表,讓我們看一下重載規則:我們可以在同一范圍內擁有以下函數。 ```cpp sum(int num1, int num2) sum(int num1, int num2, int num3) sum(int num1, double num2) ``` > 記住這條規則的最簡單方法是參數應符合以下任何一個或多個條件,它們應具有不同的**類型**,**數量**或**順序**的參數。 **例如:** 這兩個函數有不同的參數**類型**: ```cpp sum(int num1, int num2) sum(double num1, double num2) ``` 這兩個的**參數數量**不同: ```cpp sum(int num1, int num2) sum(int num1, int num2, int num3) ``` 這兩個有不同的**參數順序**: ```cpp sum(int num1, double num2) sum(double num1, int num2) ``` 以上三種情況都是有效的重載情況。我們可以有任意數量的函數,只需記住參數列表應該是不同的。例如: ```cpp int sum(int, int) double sum(int, int) ``` 由于參數列表相同,因此不允許這樣做。盡管它們具有不同的返回類型,但它無效。 ## 函數重載示例 讓我們舉一個例子來理解 C++ 中的函數重載。 ```cpp #include <iostream> using namespace std; class Addition { public: ? ? int sum(int num1,int num2) { ? ? ? ? return num1+num2; ? ? } ? ? int sum(int num1,int num2, int num3) { ? ? return num1+num2+num3; ? ? } }; int main(void) { Addition obj; ? ? cout<<obj.sum(20, 15)<<endl; ? ? cout<<obj.sum(81, 100, 10); ? ?return 0; } ``` **輸出:** ```cpp 35 191 ``` ## 函數重載例 2 正如我在本指南開頭所提到的,具有不同返回類型和相同參數列表的函數不能重載。但是,如果函數具有不同的參數列表,則它們可以具有相同或不同的返回類型,以便有資格進行重載。簡而言之,函數的返回類型在函數重載中不起任何作用。重要的是函數的參數列表。 ```cpp #include <iostream> using namespace std; class DemoClass { public: ? ? int demoFunction(int i) { ? ? ? ? return i; ? ? } ? ? double demoFunction(double d) { ? ? return d; ? ? } }; int main(void) { DemoClass obj; ? ? cout<<obj.demoFunction(100)<<endl; ? ? cout<<obj.demoFunction(5005.516); ? ?return 0; } ``` **輸出:** ```cpp 100 5006.52 ``` ## 函數重載的優點 函數重載的主要優點是提高**代碼可讀性**并允許**代碼可重用性**。在示例 1 中,我們已經看到我們如何能夠為具有不同參數的相同任務(添加)提供多個函數,這允許我們相加兩個整數以及三個整數,如果我們希望我們可以創建一些具有相同名稱和四個或五個參數的函數。 想象一下,如果我們沒有函數重載,我們要么只能相加兩個整數,要么為同一個任務添加編寫不同的名稱函數,這會降低代碼的可讀性和可重用性。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看