函数重载:
C++允许函数在相同的作用域内以相同函数名声明,不过必须满足以下条件:
要不形参类型不同,要不形参个数不同,必须满足其一
例如你想计算一个数字的平方,当这个数字是整型时返回整型,当这个数字是浮点数时返回浮点数,那么就可以定义两个相同名字的函数:int Square(int x) 和 double Square(double x)
这样调用函数Square()时,编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数
#include<stdio.h>
int Add(int a, int b);
int Add(int a, int b, int c);
double Add(double a, double b);
// long long Add(int a, int b) --非法函数!它和第一个函数形参完全相同,尽管它们返回值不同
int main(void)
{
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
printf("%d\n", Add(x, y));
printf("%d\n", Add(x, y, z));
printf("%.2f\n", Add(1.5*x, 1.7*y));
return 0;
}
int Add(int a, int b)
{
return a+b;
}
int Add(int a, int b, int c)
{
return a+b+c;
}
double Add(double a, double b)
{
return a+b;
}