【发布时间】:2019-12-30 14:58:16
【问题描述】:
我无法解释为什么第二次调用 (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;
}
【问题讨论】:
-
谢谢!什么是 TLDR?
-
它代表“太久没读”。某事物的 TLDR 版本是指某事物的较短版本或简短摘要。
标签: c++ function overloading