1.函数重载的定义
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
函数重载实现的原理:函数名的修饰规则可以让具有相同函数名的不同函数在经过修饰后·,会产生各自被修饰后的函数名,在被调用的时候,是调用的被修饰后的函数名,所以能够区分开来。
看看他的使用案例
void swap(int* a, int* b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void swap(double* a, double* b)
{
double tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int a = 1, b = 2;
double c= 1.0, d = 2.0;
swap(&a, &b);
swap(&c, &d);
return 0;
}
上面两个函数的名字相同,但参数不同,可以实现类似的功能,这就是重载函数。编译器会根据参数的类型,个数,顺序来自动识别应该使用哪一个函数,使用重载函数的哪一个功能。
!!!
1.要求构成重载,需要函数名相同,参数不同,包括个数不同,顺序不同,类型不同,顺序不同指的是数据的类型顺序不同。
2.返回值不同不能构成重载
3.在不同的域里面也不构成函数重载
具体如下
1.参数类型不同
2.参数的个数不同
3.参数的顺序不同
4.在不同的域里面不构成函数重载,如下