在C++中,override
是一个函数修饰符,用于显式地声明一个成员函数是对基类中的虚函数进行重写。
在C++中,当一个函数在基类中被声明为虚函数时,派生类可以选择是否重写这个函数。使用override
关键字可以增加代码的可读性,并确保编译器能够检测到重写错误。
使用override
的语法如下:
class Base { public: virtual void foo(); }; class Derived : public Base { public: void foo() override; // 使用override显式地重写Base中的foo函数 };
在上面的例子中,Derived
类显式地重写了Base
类中的foo
函数,并使用override
关键字进行了标记。如果Derived
类中没有重写foo
函数,或者重写的函数与基类中的虚函数签名不匹配,编译器将会发出错误。
使用override
关键字的好处是:
- 增加了代码的可读性和可维护性,清楚地表明这个函数是用于重写基类中的虚函数。
- 编译器可以在编译时检测到重写错误,如函数签名不匹配等问题。
- 当基类的虚函数发生改变时,派生类中使用了
override
的函数会自动更新,避免了忘记更新函数签名的错误。
需要注意的是,override
关键字只能用于派生类中的虚函数重写,不能用于非虚函数或静态函数。此外,C++11引入的final
关键字可以用于阻止派生类对虚函数的重写。