C函数重载
有两个函数
f(int a);
f(float a);
这样调用f(1)则调用第一个函数
如果这样f(1.0)则出现错误无法编译
跪求高手解答 谢谢!
[解决办法]
因为 1.0 的类型是 double
double 转成foat 和 double 转成 int
是同级的转换的,所以不能重载.
详见 c++ primer(第三版) 的 函数重载.
[解决办法]
在参数类型能够隐式转换的情况下,编译器不能确定调用哪个函数,由此,会产生错误。
在C++中,要想调用后者,可以
f( 1.0f );
或者
f((float)1.0);