Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция должна быть помечена как
override
C++ Core Guidelines
Компилятору не требуется четко определить, что виртуальная функция переопределяет ее базу. Если виртуальная спецификация override когда-либо изменяется в иерархии классов, может привести к незначительным проблемам во время обслуживания. Он также снижает удобочитаемость и делает полиморфное поведение интерфейса менее очевидным. Если функция четко помечена как override, компилятор может проверить согласованность интерфейса и выявить проблемы, прежде чем они манифестируются во время выполнения.
Примечания.
Это правило не применимо к деструкторам. Деструкторы имеют собственные особенности виртуальности.
Правило не помечает функции явным образом, как finalи само по себе специальное разнообразие виртуального описателя.
Предупреждения отображаются в определениях функций, а не объявлениях. Это может быть запутано, так как определения не имеют виртуальных описателей, но предупреждение по-прежнему правильно.
Имя анализа кода: OVERRIDE_EXPLICITLY
Пример: неявное переопределение
class Shape {
public:
virtual void Draw() = 0;
// ...
};
class Ellipse : public Shape {
public:
void Draw() { // C26433
//...
}
};