带有函数指针作为参数的函数声明

时间:2013-10-24 09:26:20

标签: c++ function-pointers

这是此页面的复制粘贴: Is there a difference in C++ between copy initialization and direct initialization?

  

A c3(A());

     

[...]

     

第三个为函数c3创建一个函数声明   返回一个A,它接受一个函数指针指向一个函数重新生成   a A(阅读8.2)。

我认为以下是没有参数并返回A的函数指针的正确语法。

  

A c3(A(* pFunction)());

两种语法是否等效?

1 个答案:

答案 0 :(得分:0)

是。在函数声明中,您可以省略参数名称。你甚至可以在定义中省略它们,但是你不能使用它们。这避免了"未使用的参数"例如警告GCC。

编辑正如OP指出的那样,我的论点不正确,因为我忽略了*。将A()解释为函数指针的原因在于标准的8.2.7部分,其中这个模糊表达式被定义为表示函数的指针。