当函数重载用于它们实际上去哪个函数时?
void print(int); //print 1
void print(char *); //print 2
void set (int *); //set 1
void set (const char *); //set 2
int main() {
print (0); //Which print?
set (0); //Which set?
2
的类型是什么?是int
还是short
...例如......在以下代码中,f被称为.. f(2)
void f(int, double = 0.0); //f1
void f(short); //f2
答案 0 :(得分:2)
print(0); //哪个印刷品?
print(int)
因为0
是int
。这是完全匹配 - 无需转换。
设定(0); //哪一套
不明确,因为0
(int
)可以将转换为任何类型的空指针。所以这段代码会导致编译错误。
2的类型是什么?是int还是short
是int
。如果没有任何后缀,则所有积分文字均为int
类型。
例如......在以下代码中,f被称为f(2)
现在你应该自己解决。