虚函数的语法
Syntax for virtual functions
在 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指出的那样,这是一种美学选择。
相关文章:
- QMetaObject invokeMethod的基于函数指针的语法
- 使用基类指针调用基类的值构造函数的语法是什么?
- C++使用 rand 定义函数语法
- C++中未命名函数指针的语法
- 将值传递给构造函数 c++ 的差异语法
- C++语法中的函数指针
- 存储函数指针的正确语法
- QObject::连接不起作用 - 使用函数语法找不到信号
- 对函数库中的语法感到困惑 std::bind
- 解释通过从函数引用返回数组的语法
- 函数错误 C2059:语法错误:'>'不起作用
- 当C++类函数参数之一是结构时,它们的语法有什么不同
- 将显式指定的函数模板重载作为模板参数传递的正确语法是什么?
- Qt的新信号/时隙语法问题 - 连接到一个简单的函数
- 需要"模板<>"语法 --> 通过函数调用类模板
- C++ std::函数语法问题
- 备用函数语法/函数原型
- 奇怪的c++语法:函数调用之前的类型定义
- c++数组语法(函数返回数组)
- 实现[B,C]=f(A)语法(函数f作用于具有两个或多个输出数组的数组)