我在 Code::Blocks 下使用 GNU GCC 编译器。
int foo(long s){cout<<"long"<<endl;return 0;}
int foo(float s){cout<<"float"<<endl;return 0;}
int main()
{
double a(3.2);
foo(a);
return 0;
}
我知道这会触发模棱两可的错误,但构建消息告诉我
error: call of overloaded 'foo(double&)' is ambiguous
我确实通过双变量的值传递参数,而不是通过上面写的引用。
每当我使用 const double 时:
foo(3.2); // enclosed in main function
构建消息告诉我这样的错误:
error: call of overloaded 'foo(double)' is ambiguous.
想知道为什么会这样。
double 变量和 const double 之间的传递过程不一样吗?
提前致谢。