标准C ++为什么定义DELL-SEXIFIER-SEQ可选

问题描述 投票:0回答:1

为什么在标准的C ++语法中,

decl-specifier-seq
simple-declaration
是可选的?

simple-declaration:
 decl-specifier-seq(optional)  init-declarator-list(optional);

根据规格,只有构造函数,驱动器和类型转换功能不可能具有

decl-specifier-seq
(第9.2节或第7节DCL.DCL)。但是所有这三个功能声明都是一类的成员,因此应通过与
simple-declaration

分开的另一个语法规则来定义它们。
member-declaration:
 decl-specifier-seq(optional) member-declarator-list(optional);
 function-definition ;(optional)
 ::(optional) nested-name-specifier template(optional) unqualified-id ;
 using-declaration
 static_assert-declaration
 template-declaration

在此,

decl-specifier-seq
是可选的。 但是为什么在
simple-declaration
中也是可选的?

c++ grammar
1个回答
0
投票
在C ++您可以在类范围之外声明构造函数。

class A { A(); }; A::A() {}

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.