Căt*_*rbu 4 c++ overloading function
我无法解释为什么第二个调用 ( B) 没有给出任何错误,因为有两个char元素,并且此调用没有确定的匹配项。
为什么它被称为第二个 ( 2.),而不是第一个 ( 1.) 版本?
我注意到有一些自动转换。我不明白的是为什么'a'被提升为 int 而'c'不是。
// 1.
int fun(int a, int b)
{
return a + b;
}
// 2.
int fun(int a, char b)
{
return b - a;
}
// 3
int fun(float a, float b)
{
return a * b;
}
int main() {
// A. B. C.
cout << fun(1,0) << fun('a','c') << fun(2.f,2.f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)