UCSC – Verwendung von Typumwandlungen im C++-Stil
Nach oben zu C++-Audits
Beschreibung
Das Audit überprüft Typumwandlungen im C-Stil, die vermieden werden sollten. Es gibt eine Reihe von für die C++-Sprache spezifische Umwandlungsoperatoren, die stattdessen verwendet werden sollten. Diese Operatoren entfernen einen Großteil der Mehrdeutigkeit und der Gefahren von Typumwandlungen im C-Stil. Diese Operatoren sind:
- dynamic_cast – Für Konvertierungen von polymorphen Typen
- static_cast – Für Konvertierungen von nicht-polymorphen Typen
- const_cast – Zum Entfernen der Attribute const und volatile
- reinterpret_cast – Für einfache Neuinterpretationen von Bits
Verwenden Sie die hier aufgeführten C++-Operatoren anstatt der Typumwandlung im C-Stil. Vermeiden Sie jedoch, falls möglich, die Verwendung von const_cast und reinterpret_cast. Diese Operatoren bergen dieselben Gefahren wie Typumwandlungen im C-Stil, aber sie sind weiterhin für die vollständige Ersetzung von Typumwandlungen im C-Stil notwendig.
Falsch:
return (Cat*)myAnimalPtr;
Richtig:
return dynamic_cast<Cat*>(myAnimalPtr);