构造函数没有名称。在构造函数的声明中, declarator是ptr-declarator形式的函数声明符(8.3.5) (parameter-declaration-clause)exception-specification opt attribute-specifier-seq opt 其中ptr-declarator 仅由id-expression组成,可选 attribute-specifier-seq和可选的周围括号,和 id-expression具有以下形式之一: ...
是的,这可以编译:
struct S{
(S)() {}
};
但为什么允许这样做?
答案 0 :(得分:0)
这是因为构造函数是一个函数,大多数声明都可以用括号括起来(甚至是多个):
http://.../?user=<?php echo urlencode("❤#test#❤");?>
请参阅Why does C++ allow us to surround the variable name in parentheses when declaring a variable?了解为何允许这样做。这些语法可能在定义时扩展到构造函数。