Daily bit(e) C++. Спецификатор override
Добавлено 22 сентября 2026 в 04:44
Daily bit(e) C++ 111, спецификатор override из C++11.

Спецификатор override (появившийся в C++11) указывает на то, что виртуальный метод предназначен для переопределения метода базового класса.
Если компилятор не обнаружит соответствующего виртуального метода в одном из базовых классов, он воспримет использование спецификатора override как ошибку.
Следуйте этому правилу (смотрите пункт C.128 в Core Guidelines):
- при объявлении нового виртуального метода используйте только ключевое слово
virtual; - при переопределении существующего метода используйте только спецификатор
override.
struct Base
{
virtual void method() {}
};
struct Derived : Base
{
// OK, соответствует виртуальному методу в Base
void method() override {}
// Не скомпилируется, Will not compile, const квалификатор не совпадает
void method() const override {}
// OK, добавляет новый метод
virtual void another() {}
// Не скомпилируется, случайное добавление нового метода
void yet_another() override {}
};
