【发布时间】:2015-12-10 17:42:07
【问题描述】:
我有两个重载函数,如下所示:
void print(int i) { ... }
void print(float f) { ... }
它给了我print(1.2); 的这个错误:
error: call of overloaded 'print(double)' is ambiguous
谁能解释一下为什么?
【问题讨论】:
-
你想要哪种转换?双 -> int 或双 -> 浮动?
-
恰巧C++指定
double->int与double->float同样有效。其中一个本可以做得比另一个更好,但这不是做出的决定。 -
试试这个:
print(1.2f);
标签: c++ floating-point int overloading