Daily bit(e) C++ #111, спецификатор переопределения C++11

Спецификатор переопределения (C++11) обозначает виртуальный метод, предназначенный для переопределения.

Если компилятор не находит соответствующий виртуальный метод в одном из базовых классов, он будет рассматривать спецификатор переопределения как ошибку.

Следуйте этому правилу (см. C.128 в Основных правилах):

  • при введении нового виртуального метода используйте только ключевое слово virtual
  • при переопределении существующего метода используйте только спецификатор переопределения
struct Base {
    virtual void method() {}
};

struct Derived : Base {
    // OK, matching virtual method in the Base
    void method() override {}
    // Will not compile, cv-qual does not match
    void method() const override {}

    // OK, introducing a new method
    virtual void another() {}
    // Will not compile, accidentally introducing a new method
    void yet_another() override {}
};

Откройте пример в Compiler Explorer.