函数重载
通俗理解,就是“一词多义”。即具有相同的函数名的函数却有不同的功能。
在C语言中,是不支持同名函数的。但是在一般情况下,我们需要同名函数。比如说实现两个数的相加。
在C++中,支持同名函数,它的要求是 函数名相同,但要保证参数不同或参数的个数不同。返回值可以相同也可以不同。
例如:
#include <iostream>
using namespace std;
int Add(int x, int y)
{
return x + y;
}
double Add(double x, double y)
{
return x + y;
}
int main()
{
Add(1,2);
Add(1.2, 3.4);
return 0;
}
一个函数不能既作为重载函数,又作为有默认参数的函数
一个函数不能既作为重载函数,又作为又默认参数的函数。因为在调用函数时,如果少些一个参数,系统无法判定是利用重载函数还是利用默认参数的函数,会出现二义性,系统无法执行。
比如,来看一下求最大值的函数。
比如:
#include <iostream>
using namespace std;
int max(int a, int b) //求两个数的最大值
{
a = a > b ? a : b;
return a;
}
int max(int a, int b, int c=0)//求三个数的最大值
{
a = a > b ? a : b;
a = a > c ? a : c;
return a;
}
int main()
{
int m = max(1, 2);//max是重载函数 又是默认参数
return 0;
}
这时运行就会报错。