一、转换等级
1、精确匹配
2、通过类型提升
char to int to float long to double 等短到长的提升
float和long优先级一样,可以函数重载,但不能通过类型提升来区分重载函数,具有二义性
3、通过标准转换
A、从任何整数类型或枚举类型到其他整数类型(除了提升)
B、从任何浮点类型到其他浮点类型(除了提升转换)
C、从任何整数类型到浮点类型,或者反之
D、整数0到指针类型、任何指针类型到 void 指针类型
E、从任何整数类型、浮点类型、枚举类型、指针类型到bool
4、通过类类型转换
二、重载和const形参
形参:
int *const p和 int *p是一样的,不能重载
int a 和const int a是一样的,不能重载
int *p 和const int *p可以重载
int &a和const int &a可以重载