面试题答案
一键面试- 完成代码调用:
void func(int a);
void func(double a);
void func(int a, double b);
int main() {
func(10, 3.14);
return 0;
}
- 当传入参数为10时,会调用
void func(int a)
函数。原因如下:- C++函数重载决议规则中,编译器会尝试寻找最佳匹配。当传入
10
(类型为int
)时,void func(int a)
函数是完全匹配的,而void func(double a)
函数需要将int
类型隐式转换为double
类型。 - 编译器优先选择完全匹配的函数,所以会调用
void func(int a)
函数。
- C++函数重载决议规则中,编译器会尝试寻找最佳匹配。当传入