【发布时间】:2012-03-23 01:19:13
【问题描述】:
我在这里阅读了一些关于这个主题的问题,这似乎让我感到困惑。刚开始学C++,还没有学过模板或者运算符重载等。
现在有没有简单的重载方法
class My {
public:
int get(int);
char get(int);
}
没有模板或奇怪的行为?或者我应该只是
class My {
public:
int get_int(int);
char get_char(int);
}
?
【问题讨论】:
-
@AdamV,我真的很喜欢你的评论。短但完全稳固。
-
@Adam V 实际上,获取重载函数的地址已经很模糊了。在这种情况下,应该对表达式有某种类型的期望。如果没有一个程序是格式错误的。这已经实施了。我认为使用相同的规则通过返回类型实现函数重载并不难。因此,在您的具体示例中,歧义将通过返回类型的强制转换来消除。使用
int实例化返回值将如下所示(int)get(9)和使用char就像这样(char)get(9)。 -
当你到达这里时,我认为最好的选择是像 Luchian 建议的那样考虑两个不同的函数名称。
标签: c++ overloading