函數多載
C++ 允許功能相近的函數在相同的作用域內以相同函數名聲明,從而形成多載。方便使用,便於記憶。
例:
形參類型不同 int add(int x, int y); float add(float x, float y); 形參個數不同 int add(int x, int y); int add(int x, int y, int z);
注意事項
- 不要將不同功能的函數聲明為多載函數,以免出現呼叫結果的誤解、混淆。這樣不好:
int add(int x, int y); int add(int a, int b); 編譯器不以形參名來區分。
- 編譯器不以返回值來區分:
int add(int x, int y); void add(int x, int y); 編譯器不以返回值來區分
- 多載函數的形參必須不同:個數不同或類型不同。編譯程序將根據實參和形參的類型及個數的最佳匹配來選擇呼叫哪一個函數。
例3-16:多載函數應用舉例
編寫兩個名為 sumOfSquare 的多載函數,分別求兩整數的平方和及兩實數的平方和。
#include <iostream>
using namespace std;
int sumOfSquare(int a, int b) {
return a * a + b * b;
}
double sumOfSquare(double a, double b) {
return a * a + b * b;
}
int main() {
int m, n;
cout << "請輸入兩個整數: ";
cin >> m >> n;
cout << "它們的平方和: " << sumOfSquare(m, n) << endl;
double x, y;
cout << "請輸入兩個實數: ";
cin >> x >> y;
cout << "它們的平方和: " << sumOfSquare(x, y) << endl;
return 0;
}
