函数重载异常的常见原因

函数重载异常的常见原因

  • 使用重载函数时,如果数据类型不匹配,C++尝试使用类型转换与形参进行匹配,如果转换后有多个函数能匹配上,编译将报错。
  • 引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器将形参类型的本身和类型引用视为同一特征。
  • 引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是常量(非左值),编译器将形参类型的本身和const类型引用视为同一特征。

使用重载函数时,如果数据类型不匹配,C++尝试使用类型转换与形参进行匹配,如果转换后有多个函数能匹配上,编译将报错。

重载调用void show(short no, string msg)
函数重载异常的常见原因_第1张图片
重载调用void show(double no, string msg)
函数重载异常的常见原因_第2张图片
可以匹配多个重载函数,编译器不知道匹配哪个,报错了。
函数重载异常的常见原因_第3张图片

引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器将形参类型的本身和类型引用视为同一特征。

函数重载异常的常见原因_第4张图片

原因:函数不知道是值传递还是引用传递

将实参改为数值就明确了值传递
函数重载异常的常见原因_第5张图片

引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是常量(非左值),编译器将形参类型的本身和const类型引用视为同一特征。

函数重载异常的常见原因_第6张图片
其底层原理是:const用于函数形参

你可能感兴趣的:(c++高级,c++,开发语言)