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