Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A função deve ser marcada com
override
Diretrizes principais do C++
Não é exigido pelo compilador afirmar claramente que uma função virtual substitui sua base. Não especificar override pode causar problemas sutis durante a manutenção se a especificação virtual mudar na hierarquia de classes. Também reduz a legibilidade e torna o comportamento polimórfico de uma interface menos óbvio. Se uma função estiver claramente marcada como override, o compilador pode verificar a consistência da interface e ajudar a detetar problemas antes que eles se manifestem em tempo de execução.
Observações
Esta regra não se aplica aos destruidores. Os destruidores têm suas próprias especificidades de virtualidade.
A regra não sinaliza funções explicitamente marcadas como final, que é em si uma variedade especial de especificador virtual.
Os avisos aparecem em definições de função, não em declarações. Pode ser confuso, já que as definições não têm especificadores virtuais, mas o aviso ainda está correto.
Nome da análise de código: OVERRIDE_EXPLICITLY
Exemplo: Substituição implícita
class Shape {
public:
virtual void Draw() = 0;
// ...
};
class Ellipse : public Shape {
public:
void Draw() { // C26433
//...
}
};