【发布时间】:2014-09-13 17:40:13
【问题描述】:
我不明白编译器如何选择最佳候选者。 例如,让我们有以下代码:
int function(double, int, int){...}
int function(int, double, double){...}
如果第二个函数需要转换两个变量,而第一个函数只需要转换一个变量,为什么没有选择第一个? 为什么这是一个模棱两可的情况?
【问题讨论】:
-
如果有四个参数,一个比两个更好,一个比另外两个更好,他们进入加时赛然后罚球?更好的匹配必须在每个参数上更好或相等。这不是积分竞赛。
标签: c++ function overloading language-lawyer ambiguous