override specifier
覆盖说明符%28,因为C++11%29
指定虚函数重写另一个虚拟函数。
句法
标识符override
,如果使用,则在报关员在类定义中的成员函数声明或成员函数定义的语法中。
declarator virt-specifier-seq(optional) pure-specifier(optional) | (1) | |
---|---|---|
declarator virt-specifier-seq(optional) function-body | (2) | |
1%29在成员函数声明中,override
可能会在紧接声明符之后的virt-说明符-seq中出现,并且出现在纯说明符,如果使用的话。
2%29在类定义中的成员函数定义中,override
可能会出现在virt-说明符-seq中,紧接声明器之后和函数体之前。
在这两种情况下,如果使用virt-说明符-seq,则为override
或最终,或final override
或override final
...
解释
在成员函数声明或定义中,override
确保该函数是虚拟的,并且正在重写基类中的虚拟函数。程序格式不正确的%28a编译时错误将生成%29,如果这不是真的话。
override
在成员函数声明器之后使用时具有特殊含义的标识符:否则,它将%27 s不是保留关键字。
例
二次
struct A
{
virtual void foo(
void bar(
};
struct B : A
{
void foo() const override; // Error: B::foo does not override A::foo
// (signature mismatch)
void foo() override; // OK: B::foo overrides A::foo
void bar() override; // Error: A::bar is not virtual
};
二次
另见
- 最终说明符%28自C++11%29
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。