函数参数的类型不同,或这种参数的个数不同,或者二者都有,两个或者两个函数可以使用相同的函数名,当两个或者两个以上的函数共用一个函数名时,称为函数的重载,被重载的函数称为重载函数。
(1)调用重载函数时,两个函数仅返回值类型不同不能作为重载函数,例如
int mul(int x,int y);
double mul(int x,int y);
由于函数参数和个数完全相同,因此编译器无法判断哪个函数进行匹配操作。
(2)函数的重载与带默认值的函数一起使用的时候,有可能有二义性,例如
void dram(int x=0,int y=0,int z=0);
void dram(int x);
函数调用:
dram(30);
(3)在函数调用的时候,如果给出的实参和形参的类型不匹配,C++编译器会自动做类型转换,如果转换成功,则继续执行,反之则有可能产生无法识别的错误。