函数原型中的参数名称不同

时间:2016-08-30 10:13:28

标签: c++ function parameters names

我找到了一个在函数原型设计和声明中使用不同参数的程序,所以我制作了一个基本程序。

temp = operator++(obj);
obj = temp;
obj2 = temp;

我运行这个程序,它的工作原理。这是否意味着在"功能原型制作中不需要相同的参数名称"并在"功能声明"?

1 个答案:

答案 0 :(得分:9)

是的,声明和定义中使用的参数名称不必相同。相反,参数(和顺序)的类型应该相同。实际上,参数名称在函数声明中并不是必需的,即使在定义中,如果不使用它们也可以省略它们。

$8.3.5/13 Functions [dcl.fct]

(强调我的)

  

可以选择提供标识符作为参数名称;如果存在于函数定义([dcl.fct.def])中,则为参数命名。 [注意:特别是,参数名称在函数定义中也是可选的,而名称在不同声明中用于参数,并且函数的定义不必相同。如果参数名称存在于不是定义的函数声明中,则不能在其函数声明符之外使用它,因为这是其潜在作用域的范围([basic.scope.proto])。 - 结束说明]

$8.3.5/8 Functions [dcl.fct]

  

返回类型,参数类型列表ref-qualifiercv-qualifier-seq以及该函数是否具有非投掷exception-specification,但不是默认参数([dcl.fct.default])或异常规范([except.spec]),是函数类型的一部分。

请注意,参数类型列表(不包括其名称)是函数类型的一部分。