我有这个代码:
在标题中:
...
int32_t round(float v);
...
Run Code Online (Sandbox Code Playgroud)
在源头
...
int32_t round(float v)
{
int32_t t = (int32_t)std::floor(v);
if((v - t) > 0.5)
return t + 1;
return t;
}
...
Run Code Online (Sandbox Code Playgroud)
我在这个网站上环顾四周,但这些例子对我来说似乎有点过于复杂.
我正在学习C++,所以如果有人能够向我解释错误的含义以及错误发生的原因,我将不胜感激.
Jac*_*ack 21
函数重载意味着具有多个具有相同名称的方法.
现在,编译器解析正确的重载方法,查看方法名称和参数,但返回值为NO.这意味着,如果你有
int round(float something) { ... }
float round(float something) { ... }
Run Code Online (Sandbox Code Playgroud)
然后编译器无法区分它们并知道您要在调用点调用哪一个.所以在你的情况下,这意味着已经有另round一种接受a的方法float.