【发布时间】:2015-03-27 10:10:33
【问题描述】:
在 c++ 中创建虚拟函数时,我必须在哪里编写“虚拟”关键字?如果我写 virtual int function_name 而不是 int virtual function_name 像在 java 中那样写会有区别吗
【问题讨论】:
-
你为什么不检查一下?你认为令牌的顺序有一些隐藏的挑剔吗?或者你只是不知道会不会出现语法错误。
标签: c++ syntax polymorphism
在 c++ 中创建虚拟函数时,我必须在哪里编写“虚拟”关键字?如果我写 virtual int function_name 而不是 int virtual function_name 像在 java 中那样写会有区别吗
【问题讨论】:
标签: c++ syntax polymorphism
最好写const int n; virtual void a(); volatile char s;,其中const, virtual and volatile 是修饰符。
这并不意味着它会更好或“更正确”。正如@MikeSeymour 指出的那样,这是一种审美选择。
【讨论】:
在 c++ 中创建虚拟函数时,我必须在哪里写
virtual关键字?
在函数声明中,在函数名之前,在任何属性说明符之后,以及其他说明符(包括函数返回类型的类型说明符)。
声明的一般语法是
simple-declaration:
decl-specifier-seq<opt> init-declarator-list<opt> ;
attribute-specifier-seq decl-specifier-seq<opt> init-declarator-list ;
virtual (a function-specifier) 和返回类型 (a type-specifier) 都是 decl-specifier-seq 的一部分,并且被声明的名称是 init-declarator-list 的一部分。
如果我写
virtual int function_name而不是int virtual function_name会有什么不同
不,说明符的顺序没有区别。
但是,如果您将virtual 放在类型说明符之后,您可能会让一些人感到惊讶,因为放在前面更常见。在我回答这个问题之前,我不知道你能做到这一点。
【讨论】: