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);
>>不要将不同功能的函数声明为重载函数,以免出现调用结果的误解,混淆。
int add(int x,int y){ return x +y;}float add(float x,float y){ return x - y;}
重载函数应用举例:
编写两个名为sumOfSquare的重载函数,分别求两整数的平方和以及两实数的平方和
#includeusing 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 << "Enter two integer: "; cin >> m >> n; cout << "Their sum of square: " << sumOfSquare(m, n) << endl; double x, y; cout << "Enter two real number: "; cin >> x >> y; cout << "Their sum of square: " << sumOfSquare(x, y) << endl; system("pause"); return 0;}
输出结果: