函数重载判断标准:
1.参数个数不同
2.参数类型不同
3.参数顺序不同
注意:
返回类型不同不是判断标准
函数调用准则:
1.默认参数类型能匹配
2.默认类型转换能匹配
注意:
可调函数不唯一,二义性,报错
无可调函数,报错
特殊例子辨析:
void F(int a)
int F(int a)
返回值不是判断标准,若参数完全相同,函数名相同会报错
void F(int a)
int F(int a,int)
构成函数重载,编译器不报错。F(1);调用void F(int a);F(1,2);调用int F(int a,int);
void F(int a,int c=0)
void F(int a,int)
不满足重载判断标准,无法构成重载
void F(int a)
void F(int a,int c=0)
构成重载,但调用出现二义性
void F(int a)
void F(int a,int)
构成重载,可以调用。如:F(1);调用 void F(int a); F(1,2);调用void F(int a,int);这在前置后置操作符重载函数书写中有用
其它小点:
void F(double a)
void F(float a)
F(1.1);默认调用void F(double a),F(1.1f);调用void F(float a);类似还有默认int,有需求转成short,long啥的。