override 说明符:用于显式标记派生类中的虚函数,声明它要覆盖基类的虚函数。
信息说明
覆盖虚函数时始终使用 override 关键字,可以避免许多微妙的错误。
cpp
class Base {
public:
virtual void foo() const;
virtual void bar();
};
class Derived : public Base {
public:
void foo() const override; // 正确:覆盖了基类的 foo
void bar() override; // 正确:覆盖了基类的 bar
void baz() override; // 错误:基类没有 baz 虚函数
};主要作用:
- 编译时检查:如果派生类中的函数没有正确覆盖基类的虚函数,编译器会报错
- 代码可读性:让阅读代码的人一眼看出这是覆盖函数
覆盖条件:要成功覆盖基类虚函数,派生类函数必须匹配:
- 函数名相同
- 参数类型和个数相同
- 返回类型兼容
const限定符相同- 异常规范兼容