标签: c++ floating-point int double overloading
void sum(int x); void sum(float x);
我不明白为什么这些函数重载语句会为sum(2.3)创建以下错误:
sum(2.3)
重载sum(double)的调用是不明确的
sum(double)
但是对于以下两个函数重载,它运行良好。
void sum(int x); void sum(double x);
答案 0 :(得分:1)
2.3是double,编译器无法选择转换为int还是float(两者都会失去精度)。