虚函数的语法

Syntax for virtual functions

本文关键字:语法 函数      更新时间:2023-10-16

在 c++ 中使函数成为虚拟时,我必须在哪里编写"虚拟"关键字?如果我像在 java 中那样编写虚拟 int function_name而不是 int 虚拟function_name,这会有什么区别

吗?

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

在函数

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

声明的一般语法是

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

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

如果我写virtual int function_name而不是int virtual function_name,会有什么区别

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

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

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

这并不意味着它会更好地工作或"更正确"。正如@MikeSeymour指出的那样,这是一种美学选择。