首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“不能重载仅通过返回类型区分的函数”是什么意思?

“不能重载仅通过返回类型区分的函数”是什么意思?
EN

Stack Overflow用户
提问于 2015-02-10 06:45:02
回答 1查看 40.2K关注 0票数 10

我有这样的代码:

在标题中:

代码语言:javascript
复制
...
int32_t round(float v);
...

并且在源代码中

代码语言:javascript
复制
...
int32_t round(float v)
{
    int32_t t = (int32_t)std::floor(v);
    if((v - t) > 0.5)
        return t + 1;

    return t;
}
...

我已经在这个网站上看过了,但是例子对我来说似乎太复杂了。

我正在学习C++,所以如果有人能给我解释一下这个错误意味着什么以及为什么会发生,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 06:48:50

意味着有多个方法具有相同的名称。

现在,编译器为了解析正确的重载方法,只查看方法名称和参数,而不查看返回值。这意味着如果你有

代码语言:javascript
复制
int round(float something) { ... }
float round(float something) { ... }

那么编译器就不能区分它们,也不能知道您想在调用点调用哪一个。因此,在您的示例中,这意味着已经有另一个接受floatround方法。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28420921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档