Aviso C26435
A função 'símbolo' deve especificar exatamente um dos itens 'virtual', 'substituir' ou 'final' (c.128)
Diretrizes Principais do C++
Para melhorar a legibilidade, o tipo de comportamento virtual deve ser declarado de maneira clara e sem redundância desnecessária. Embora vários especificadores virtuais possam ser usados simultaneamente, é melhor especificar um de cada vez para enfatizar o aspecto mais importante do comportamento virtual. A seguinte ordem de importância é aparente:
- função virtual simples;
- função virtual que substitui explicitamente sua base;
- função virtual que substitui sua base e fornece a implementação final na cadeia de herança atual.
Observações
- Essa regra ignora os destruidores, pois eles têm regras especiais sobre virtualidade.
- Avisos aparecem em definições de função, não em declarações. Isso pode ser confuso, já que definições não têm especificadores virtuais, mas o aviso ainda é apropriado.
Nome da análise de código: SINGLE_VIRTUAL_SPECIFICATION
Exemplo: especificador redundante
class Ellipse : public Shape {
public:
void Draw() override {
//...
}
};
class Circle : public Ellipse {
public:
void Draw() override final { // C26435, only 'final' is necessary.
//...
}
};
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de