Warnung C26443
Außerkraftsetzungsdestruktoren sollten keine expliziten "Außerkraftsetzungen" oder "virtuellen" Bezeichner verwenden.
Diese Warnung wurde in Visual Studio 16.8 entfernt, um Änderungen an C.128 in den C++-Kernrichtlinien widerzuspiegeln.
C++ Core Guidelines
Der aktuelle Konsens über die Kernrichtlinien besteht darin, Destruktoren aus der Empfehlung "explizit außer Kraft setzen" auszuschließen.
Hinweise
- Die Regel kennzeichnet Außerkraftsetzungsdestruktoren, die explizit "virtual" oder "override"-Bezeichner verwenden.
- Destruktoren können aufgrund ihrer speziellen Semantik weiterhin den "endgültigen" Bezeichner verwenden.
- 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: NO_EXPLICIT_DTOR_OVERRIDE
Beispiel: Explizite Außerkraftsetzung
class Transaction {
public:
virtual ~Transaction();
// ...
};
class DistributedTransaction : public Transaction {
public:
~DistributedTransaction() override { // C26443
// ...
}
};