函数重载的定义:
两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。
重载函数的形参定义时注意事项:
- 个数不同
- 类型不同
- 不以形参名来区分函数
- 不以返回值来区分函数
1,形参个数不同
int add(int x, int y);
int add(int x, int y, int z);
2,形参类型不同
int add(int x, int y);
int add(float x, float y);
3,不能以形参名来区分函数(形参只是可以看作虚拟的,是根据传入值赋值的,不能分辨是哪一个)
int add(int x, int y);
int add(int a, int b);
4,不能以返回值来区分函数(实参传入时,与返回值无关,所以,不能以返回值确定)
int add(int x, int y);
float add(int x, int y);
例题
求两整数和两实数的平方和
(此时可以运用重载,一个定义为整型,一个实数型)
#include<iostream>
using namespace std;
int add(int a, int b) //整型
{
return a + b;
}
double add(double a, double b) //实数型
{
return a + b;
}
int main()
{
int m, n;
cin >> m >> n;
cout << "m + n = " << add(m, n) << endl;
double mm, nn;
cin >> mm >> nn;
cout << "mm + nn = " << add(mm, nn) << endl;
system("pause");
}