多个重载函数实例与参数列表匹配

时间:2012-10-22 12:20:30

标签: c++ visual-studio-2010

使用

时出现上述错误
double x = log10(100);

我在其他类中使用过它,在同一个项目中并没有显示此错误。

我该如何解决?

非常感谢

Chintan

1 个答案:

答案 0 :(得分:19)

该错误通常表示函数log10有多个重载,并且它们中没有一个比其他特定调用的更好。例如,重载可能需要floatdouble100是一个int,可以转换为任何一个并且转换是等效的,因此编译器无法确定最佳选项是。

您可以明确强制转换为其中一个重载:

double x = log10( 100. );    // 100. is a double
float  y = log10( 100f );    // 100f is a float
int i = 100;
double z = log10( static_cast<double>(i) ); // or cast