我很好奇为什么新的 C++11 关键字被迫以与而不是override
一致的方式出现在方法声明之后?const
virtual
class SomeBaseClass {
virtual void DoPolymorphicBehavior() = 0;
...
class SomeDerrivedClass : public SomeBaseClass {
void DoPolymorphicBehavior() override;
...
为什么在世界上不允许它在相同的确切位置(甚至代替)virtual
class SomeBaseClass {
virtual void DoPolymorphicBehavior() = 0;
...
class SomeDerrivedClass : public SomeBaseClass {
override void DoPolymorphicBehavior();
...
这将允许我在我的源文件中对派生类进行搜索和替换,以轻松地使用 new 关键字,从而在查找错误时从编译器获得帮助。但是,由于 C++11 在语法上将其置于不同的位置,因此我必须手动更新数千行源代码才能从新的编译器功能中获得任何好处。
这个选择背后肯定有充分的理由吗?