Wann verwendet man static_cast, dynamic_cast, const_cast und reinterpret_cast in C++?
Hallo! Ich habe gerade angefangen, C++ zu lernen, und komme mit der Typumwandlung überhaupt nicht klar. Es gibt anscheinend vier verschiedene Operatoren: static_cast, dynamic_cast, const_cast und reinterpret_cast. Aber wann man welchen verwenden soll – völliges Durcheinander.\n\nZum Beispiel möchte ich ein double in ein int umwandeln. Kann ich nicht einfach (int)value schreiben, wie in C? Wozu brauche ich static_cast?\n\nOder diese Situation: Ich habe eine Klassenhierarchie und möchte einen Zeiger auf eine Basisklasse in einen Zeiger auf eine abgeleitete Klasse umwandeln. Ich habe gehört, dass man dafür dynamic_cast verwendet, aber das funktioniert nur mit virtuellen Funktionen. Was ist, wenn es keine gibt? Kann ich static_cast verwenden?\n\nAußerdem verwirrt mich const_cast. Ich weiß, dass er die Konstantheit "entfernen" kann. Aber ist das nicht gefährlich? Und wozu sollte man überhaupt ein konstantes Objekt ändern müssen?\n\nUnd das Schlimmste
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Testen in C++: Unit-, Integrations- und E2E-Tests. Vollständiger Leitfaden
Wie man in 30 Minuten eine REST API in PHP schreibt: Schritt-für-Schritt-Anleitung
Parallelität und Multithreading in C++: moderne Ansätze und Beispiele
Refactoring von Legacy-Code in Swift: Von A bis Z