面试题答案
一键面试func(5)
:- 匹配到
void func(int a)
。 - 匹配规则:实参
5
是整数类型int
,正好与void func(int a)
函数的形参类型完全匹配,在函数重载解析中,完全匹配的函数优先被选择。
- 匹配到
func(5.5)
:- 匹配到
void func(double a)
。 - 匹配规则:实参
5.5
是浮点数常量,其默认类型为double
,与void func(double a)
函数的形参类型完全匹配,所以选择此重载函数。
- 匹配到
func('a')
:- 匹配到
void func(int a)
。 - 匹配规则:实参
'a'
是字符型常量,在C++ 中,字符型可以隐式转换为整型,'a'
对应的整数值会被传递给void func(int a)
函数。这种转换属于标准转换序列中的一种,虽然不是完全匹配,但在没有更优匹配的情况下(这里没有void func(char a)
重载函数),会选择这种能够进行标准转换的函数。
- 匹配到