在C++中,override
关键字用于显式地指示一个成员函数是覆盖(override)基类中的虚函数。它的使用方法如下:
- 基类中的虚函数声明:在基类中,将要被派生类覆盖的虚函数声明为
virtual
。
class Base { public: virtual void foo(); };
- 派生类中的函数声明:在派生类中,重写基类中的虚函数,并使用
override
关键字。
class Derived : public Base { public: void foo() override; };
请注意,使用override
关键字的函数声明必须满足以下条件:
-
函数名、参数列表和const限定符(如果有)必须与基类中的虚函数完全匹配。
-
如果在基类中的虚函数声明中使用了
const
限定符,那么在派生类中的重写函数声明也必须使用const
限定符。 -
如果在基类中的虚函数声明中使用了
final
关键字标记函数为最终函数,那么在派生类中不可以使用override
关键字来覆盖该函数。
使用override
关键字可以提高代码的可读性,并帮助编译器在派生类中检查是否正确地覆盖了基类中的虚函数。如果在派生类中使用了override
关键字,但是该函数并没有覆盖基类中的虚函数,编译器会发出错误提示。