我有这样的代码:
在标题中:
...
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++,所以如果有人能给我解释一下这个错误意味着什么以及为什么会发生,我将不胜感激。
发布于 2015-02-10 06:48:50
意味着有多个方法具有相同的名称。
现在,编译器为了解析正确的重载方法,只查看方法名称和参数,而不查看返回值。这意味着如果你有
int round(float something) { ... }
float round(float something) { ... }那么编译器就不能区分它们,也不能知道您想在调用点调用哪一个。因此,在您的示例中,这意味着已经有另一个接受float的round方法。
https://stackoverflow.com/questions/28420921
复制相似问题