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