例如:
class Base {
virtual void my_function() = 0;
};
class Derived : Base {
void my_function() override;
};
据我所读,override
关键字用于确保我们在重写的函数中有正确的签名,并且它似乎只有这一个用途。
但是,在纯虚函数的情况下,如果在派生类(或者基类,具体取决于怎么理解)中使用了不正确的签名,编译器会抛出错误。那么,在 Derived::my_function()
声明末尾加上 override
是否有意义呢?
Derived
类中提供了错误的签名,则Derived
类也会变成抽象类。如果没有使用override
关键字,可能无法在正确的位置检测到这一点。 - Some programmer dudeoverride
断言不兼容更改,您的代码将无法编译。 - user207421