C++ 重载函数:实参类型转换

来源:互联网 发布:如何通过淘宝试用 编辑:程序博客网 时间:2024/05/02 00:50

一、转换等级

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可以重载

0 0