例如:
class Base {
virtual void my_function() = 0;
};
class Derived : Base {
void my_function() override;
};
根据我的阅读, override
关键字用于确保我们在覆盖的函数中具有正确的签名,这似乎是它的唯一用途。
但是,在纯虚函数的情况下,如果我们在派生类(或基类,取决于人们如何看待事物)中使用了不正确的签名,编译器会抛出错误。那么,在 Derived::my_function()
声明的末尾添加 override
有什么意义吗?
原文由 R2B2 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,这编译:
虽然这不会:
您所说的错误仅在实例化时发生
Derived
-override
允许您更早地发现错误并使Derived
的定义更清晰。