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

chi*_*n s 9 c++ visual-studio-2010

我使用时收到上述错误

double x = log10(100);
Run Code Online (Sandbox Code Playgroud)

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

我如何解决它?

非常感谢

Chintan

Dav*_*eas 19

该错误通常表明没有为功能多于一个的过载log10和他们都不是更好的比别人那个特定的呼叫.例如,重载可能需要floatdouble:100int可以转换为任何一个并且转换是等效的,因此编译器无法确定最佳选项是什么.

您可以显式强制转换为其中一个重载:

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
Run Code Online (Sandbox Code Playgroud)