函数重载异常的常见原因
使用重载函数时,如果数据类型不匹配,C++尝试使用类型转换与形参进行匹配,如果转换后有多个函数能匹配上,编译将报错。
重载调用void show(short no, string msg)
重载调用void show(double no, string msg)
可以匹配多个重载函数,编译器不知道匹配哪个,报错了。
引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器将形参类型的本身和类型引用视为同一特征。
原因:函数不知道是值传递还是引用传递
将实参改为数值就明确了值传递
引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是常量(非左值),编译器将形参类型的本身和const类型引用视为同一特征。
其底层原理是:const用于函数形参