函式多載(overloading),今天順著螞蟻書的順序先討論函式多載(overloading)與樣板(Template),這段英文講得很透徹甚麼是多載Overloading allows different function to have the same name, 本質就是除了名稱其他都是不同的,如返回值/參數類型/參數數量/程式邏輯,下面個範例第一個print函數沒有回傳值接收int當參數,第二個print函數有回傳值double並接受double當參數,第三個print函數接受兩個參數:其一指標常數字元其二一個控制內部迴圈的參數int,同時這三個print函數內部邏輯完全不同,這就是多載的精髓"只有名稱是一樣的其他都不一樣",最終結果如下圖二。
#include <iostream>
using namespace std;
void print(int i) {
cout << " Here is int " << i << endl;
}
double print(double f) {
return f;
}
void print(char const *c, int j) {
for (int i = 0; i < j; i++){
cout << " Here is char* " << c << endl;
}
}
int main() {
print(10);
cout << " Here is float " << print(10.0) << endl;
print("ten",2);
return 0;
}
Here is int 10
Here is float 10
Here is char* ten
Here is char* ten