虚函数的语法

时间:2015-01-28 13:26:58

标签: c++ syntax polymorphism

在c ++中创建虚拟函数时,我必须在哪里编写"虚拟"关键词?如果我在java

中编写virtual int function_name而不是int virtual function_name会有所不同吗?

2 个答案:

答案 0 :(得分:2)

  

在c ++中创建虚拟函数时,我必须在哪里编写virtual关键字?

在函数声明中,在函数名之前,在任何属性说明符之后,以及其他说明符(包括函数返回类型的类型说明符)。

声明的一般语法是

simple-declaration:
    decl-specifier-seq<opt> init-declarator-list<opt> ;
    attribute-specifier-seq decl-specifier-seq<opt> init-declarator-list ;

其中virtual(a 函数说明符)和返回类型( type-specifier )都是 decl-specifier的一部分-seq ,并且声明的名称是 init-declarator-list 的一部分。

  

如果我写virtual int function_name而不是int virtual function_name

,这会有所不同吗?

不,说明符的顺序没有区别。

但是,如果您将virtual放在类型说明符之后,您可能会对某些人感到惊讶,因为它之前更常见。在我回答这个问题之前,我不知道你能做到这一点。

答案 1 :(得分:0)

最好写const int n; virtual void a(); volatile char s; const, virtual and volatile是修饰符。

它并不意味着它会更好地运作,或者它会更正确&#34;。正如@MikeSeymour指出的那样,它是一种美学选择。