Warnung C26435
Die Funktion "Symbol" sollte genau eine von "virtual", "override" oder "final" (c.128) angeben.
C++ Core Guidelines
Um die Lesbarkeit zu verbessern, sollte die Art des virtuellen Verhaltens klar und ohne unnötige Redundanz angegeben werden. Obwohl mehrere virtuelle Bezeichner gleichzeitig verwendet werden können, ist es besser, jeweils einen zu angeben, um den wichtigsten Aspekt des virtuellen Verhaltens hervorzuheben. Die folgende Reihenfolge der Bedeutung ist ersichtlich:
- einfache virtuelle Funktion;
- virtuelle Funktion, die ihre Basis explizit außer Kraft setzt;
- virtuelle Funktion, die ihre Basis überschreibt und die endgültige Implementierung in der aktuellen Vererbungskette bereitstellt.
Hinweise
- Diese Regel überspringt Destruktoren, da sie spezielle Regeln hinsichtlich der Virtualität haben.
- Warnungen werden für Funktionsdefinitionen und keine Deklarationen angezeigt. Es kann verwirrend sein, da Definitionen keine virtuellen Bezeichner haben, aber die Warnung ist weiterhin geeignet.
Codeanalysename: SINGLE_VIRTUAL_SPECIFICATION
Beispiel: Redundanter Bezeichner
class Ellipse : public Shape {
public:
void Draw() override {
//...
}
};
class Circle : public Ellipse {
public:
void Draw() override final { // C26435, only 'final' is necessary.
//...
}
};
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für