重载的条件:函数参数类型和个数不同,返回值不做为考虑。例:
void f(int i); void f(double i);
一、float和double的情况:
void f(float i); void f(double i);
如果输入浮点数,不存在多义,将会调用void f(double i),因为:在C++中将浮点数转化为double类型。假如输入:10,则存在多义,因为编译器不知道如何转换。
二、char和unsigned char的情况
void f(unsigned char c); void f(char c);
如果输入:f(‘c‘)无多义,但是输入f(88)会产生多义。
三、函数用缺省参数产生的多义
void f(in i,int j=1); void f(int i);
输入f(20),会产生多义。
时间: 2024-10-09 02:25:23