C++变量declation语法

Con*_*per 7 c c++ syntax declaration

我最近遇到了这个结构:int(m); 这似乎相当于:int m;

奇怪的是,我以前从未见过这种特殊的习语.有人能指点我参考,我可以阅读这个规格,或直接解释?这也适用于直C吗?

谢谢,ConfusedDeveloper

AnT*_*AnT 11

这不是一个"成语".它只是一对冗余的括号.在语法上,他们可以在那里,但他们没有任何目的.

有时类似看似多余的括号可用于解决C++声明中的歧义,例如

int a(int());
Run Code Online (Sandbox Code Playgroud)

声明一个函数可以变成

int a((int()));
Run Code Online (Sandbox Code Playgroud)

这相当于

int a = int();
Run Code Online (Sandbox Code Playgroud)

并定义一个变量.但这并不是你所拥有的.

  • @suszterpatt:问题是关于声明的.您的示例根本不涉及任何声明.你的例子是关于表达式中的`()`,这是一个完全不同的故事. (7认同)
  • 轻微的挑剔:它并不总是多余的.例如,您可以编写`cout << int(n)`,但不能编写`cout << int n`. (2认同)