網頁

2022/7/24

C++ 函式多載/重載 function overloading

C++函式多載/重載簡介。


所謂的函式多載(functions overloading)是指參數型別或個數不同的函式可以使用相同的名稱。

例如下面三個函式名稱皆為add可通過編譯因為每個函式的參數型別及數量不同。

main.cpp

#include <iostream>
using namespace std;

int add(int a, int b) { return a + b; }

double add(double a, double b) { return a + b; }

int add(int a, int b, int c) { return a + b + c; }

int main() {
    int x = add(1, 2);
    cout << x << endl; // 3

    double y = add(1.1, 2.2);
    cout << y << endl; // 3.3

    int z = add(1, 2, 3);
    cout << z << endl; // 6

    return 0;
}

要注意overloading並不包括函式回傳的型別,例如下面兩個函式僅有回傳形態不同仍無法通過編譯。

int add(int a, int b) { return a + b; }

double add(int a, int b) { return a + b; } // cannot overload functions distinguished by return type alone

除了函式C++類別的運算子也可多載

對學過Java的人來說應該非常熟悉多載



沒有留言:

張貼留言