【问题标题】:more than one instance of overloaded function matches the argument list多个重载函数实例与参数列表匹配
【发布时间】:2012-10-12 06:12:29
【问题描述】:

我在使用时遇到上述错误

double x = log10(100);

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

我该如何解决?

非常感谢

金丹

【问题讨论】:

  • 我假设您的实际实现采用一个变量而不是 100,如果不是:x = 2..
  • 检查您使用的库或您继承的类。似乎您在调用该函数时遇到了冲突。如果可能,请使用类名来调用函数 log10()。这可能会解决问题。

标签: c++ visual-studio-2010


【解决方案1】:

该错误通常表明函数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

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多