一、概念介绍
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型 不同的问题。
二、形参列表不同的三种情况
1.参数类型不同
int sub(int x, int y)
{
cout <<" int sub(int x, int y) "<< endl;
return x - y;
}
double sub(double x, double y)
{
cout << " double sub(double x, double y) " << endl;
return x - y;
}
int main()
{
sub(3, 4);
sub(3.4, 4.3);
}
2.参数个数不同
void func()//无参数
{
cout << "func()" << endl;
}
void func(int a)//含一个参数
{
cout << "func(int a)" << endl;
}
int main()
{
func();
func(100);
}
3.参数类型顺序不同
void func(int x, char y)
{
cout << "f(int x,char y)" << endl;
}
void func(char y, int x)
{
cout << "f(char y, int x)" << endl;
}
int main()
{
func(100, 'o');
func('o', 100);
return 0;
}
三、C++支持重载的原因
在使用C++编译器编译之后,各函数名的修饰发生了改变,所以能区分开来。
如果两个函数函数名和参数是一样的,返回值不同是不构成重载的,因为调用时编译器没办 法区分