C ++中的函数重载和数字的数据类型

时间:2014-02-12 18:55:04

标签: c++ overloading

当函数重载用于它们实际上去哪个函数时?

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

1 个答案:

答案 0 :(得分:2)

  

print(0); //哪个印刷品?

print(int)因为0int。这是完全匹配 - 无需转换。

  

设定(0); //哪一套

不明确,因为0int)可以转换为任何类型的空指针。所以这段代码会导致编译错误。

  

2的类型是什么?是int还是short

int。如果没有任何后缀,则所有积分文字均为int类型。

  

例如......在以下代码中,f被称为f(2)

现在你应该自己解决。