为什么第一个原型是正确的而第二个是不正确的?

时间:2017-01-14 17:13:22

标签: c++ function

在一个问题中,下面给出的第一个原型称为有效

int Function(int Tmp = Show()); 

而在第二种情况下,它被称为无效声明。为什么?

float Function(int Tmp = Show(int, float));

此处是问题的链接 - http://www.indiabix.com/cpp-programming/functions/discussion-61

2 个答案:

答案 0 :(得分:6)

Show用于建立默认参数值的事实是一个红色的鲱鱼。

Show(int, float)调用该函数Show的上下文中没有意义,而Show()则有效。

在C ++中调用函数时,提供参数 values ,而不是类型。

答案 1 :(得分:4)

因为在第二种情况下你没有将任何实际参数传递给Show()函数。你会想要像

这样的东西
  float Function(int Tmp = Show( 1, 2.3 ));

第一种情况不需要参数,因为它可能是对函数的调用,如下所示:

  int Show();