我找到了一个在函数原型设计和声明中使用不同参数的程序,所以我制作了一个基本程序。
temp = operator++(obj);
obj = temp;
obj2 = temp;
我运行这个程序,它的工作原理。这是否意味着在"功能原型制作中不需要相同的参数名称"并在"功能声明"?
答案 0 :(得分:9)
是的,声明和定义中使用的参数名称不必相同。相反,参数(和顺序)的类型应该相同。实际上,参数名称在函数声明中并不是必需的,即使在定义中,如果不使用它们也可以省略它们。
$8.3.5/13 Functions [dcl.fct]:
(强调我的)
可以选择提供标识符作为参数名称;如果存在于函数定义([dcl.fct.def])中,则为参数命名。 [注意:特别是,参数名称在函数定义中也是可选的,而名称在不同声明中用于参数,并且函数的定义不必相同。如果参数名称存在于不是定义的函数声明中,则不能在其函数声明符之外使用它,因为这是其潜在作用域的范围([basic.scope.proto])。 - 结束说明]
返回类型,参数类型列表,ref-qualifier,cv-qualifier-seq以及该函数是否具有非投掷exception-specification,但不是默认参数([dcl.fct.default])或异常规范([except.spec]),是函数类型的一部分。
请注意,参数类型列表(不包括其名称)是函数类型的一部分。