c++ - 为什么调用方法 1 而不是方法 2?

标签 c++ overloading

我很困惑为什么下面的代码段调用方法 1 而不是方法 2?方法2的参数个数与调用完全匹配,为什么不调用方法2?

bool addOraclePolygonFeatures(long l, int  i=2)
{
  //method 1

  cout<<"method1\n";
  return true;
}

// Function 2
bool addOraclePolygonFeatures(int i)
{
  //method 2

  cout<<"method2\n";
  return true;
}

int main()
{
  long l=4;
  int  i=3;
  addOraclePolygonFeatures(l);
}

最佳答案

调用方法一是因为是精确匹配;方法 2 需要 downcast。

关于c++ - 为什么调用方法 1 而不是方法 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644951/

相关文章:

c++ - C++中的默认参数与重载

c++ - 如何在不修改操作数的情况下使用一系列运算符重载?

c++ - 正则表达式 C++ Qt

c++ - 转换为 bool 时没有得到 1

c++ - 如何打印 R、G 和 B 矩阵

kotlin - 函数中带有和不带有 'suspend' lambda 的“重载分辨率歧义”

c++ - 在 C++ 中重载 ">>"和 "<<"

c++ - 如何在 C/C++ 中使用 FFmpeg API 覆盖过滤器

c++ - 为什么这个宏接受带有 1 个参数的模板而拒绝带有 2 个参数的模板?

c++ - 未检测到重载的运算符