8.4
8.4 函数重载
函数多态(函数重载)
多个同名的函数, 完成相同的工作, 使用不同的参数列表
函数重载的关键是参数列表(函数特征标)
当调用一个函数, 该函数重载匹配到了多个可以执行的函数, 会发生错误
double cube(double x);
double cube(double & x);
cout << cube(x); // 将会发生错误
匹配函数时, 不区分const和非const
void dabble(char *bits);
void dabble(const char *cbits);
dribble() 只匹配非const的参数调用, 编译器将根据实参是否为const决定使用哪个原型(两个都会被匹配上)
void drivle(const char * bits);
drivel() 可以匹配const 和非const参数调用
特征标使得函数可以重载
只是返回值不同不可以重载
重载引用参数
将调用最匹配的函数
何时使用函数重载
当函数基本上执行相同的任务, 但使用不同形式的数据时。
名称修饰/名称矫正
根据函数原型中指定的形参类型对每个函数名加密。