C++:函数重载详解
C++:函数重载
一、函数重载定义 - 同一作用域空间中,定义多个同名函数,该系列同名函数函数形参须或类型或个数或顺序不同。
1、函数形参个数、类型、顺序三者中须至少一个不同
a、函数形参个数不同:
int Max(int var1, int var2);
int Max(int var1, int var2, int var3);
b、函数形参类型不同:
int Add(int var1, int var2);
float Add(float var1, float var2);
double Add(double var1, double var2);
c、函数形参顺序不同:
float Add(int var1, float var2);
float Add(float var1, int var2);
2、函数返回值不能作为函数重载的条件
3、函数形参为引用时,带有const与未带const可作为函数重载的判断条件
int Add(int &var1, int &var2);
int Add(const int &var1, const int &var2);
4、函数重载碰到函数默认参数时,须注意避免二义性
int Add(int var1, int var2, int var3);
int Add(int var1, int var2, int var3=0);
// 调用以上两个函数时,若传入参数个数为2个时,自动调用第二个函数;若传入个数为3个时,存在二义性,程序不能正常运行。