在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
关键字可以用于阻止派生类对虚函数的重写。