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的人來說應該非常熟悉多載。
沒有留言:
張貼留言