C ++定义中的优先括号

时间:2015-05-03 19:19:02

标签: c++ function

为什么以下代码在C ++中是非法的?

(int) foo()
{
    return 0;
}

毕竟,

中的第一个括号
int( * foo )();

建议括号可用于声明中的优先目的。

1 个答案:

答案 0 :(得分:4)

不,你的第二个例子中的括号并不暗示。它只是一种语法结构,意味着"这是一个指向函数"的指针。它不依赖于优先权。

代码是非法的,因为没有以(开头的表达式在您可以声明函数的上下文中有效(即:全局范围,类范围或者命名空间范围)。