Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++ Grundkurs

Const-Cast-Operator

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Const-Cast-Operator dient dazu, die Konstanz eines Objekts aufzuheben. Dabei muss allerdings unbedingt auf einige Dinge geachtet werden.
02:24

Transkript

In dieser Lektion will ich den const_cast vorstellen. Der const_cast hat ein ganz einfaches Einsatzgebiet. Er erlaubt es, const oder volatile von seinem Argument wegzunehmen oder hinzuzufügen. Ich habe hier ein großes rotes Stop-Symbol verwendet, weil der const_cast häufig missbraucht wird. Wenn Sie von einem konstanten Objekt die Constheit wegenehmen, es dann modifizieren, ist das per default undefiniertes Verhalten. Es kann alles passieren. Sie können sich das so vorstellen. Sie gehen einen Vertrag mit dem Compiler ein und Sie missbrauchen den Vertrag. D. h., wenn Sie ein konstantes Objekt verändern wollen, muss es ursprünglich als nicht konstantes Objekt deklariert worden sein. Das zeige ich Ihnen jetzt in der Anwendung. Ich zeige Ihnen natürlich den Gut-Fall. Als erstes habe ich hier ein int i 2011. Sie sehen, das ist nicht konstant. Das mache ich dann konstant, indem ich es nach constI zum constl-Zeiger konvertiere. Dann habe ich ein const int. Dann nehme ich die Constness wieder weg, indem ich es wieder nach int- Pointer oder int-Zeiger konvertiere. Jetzt darf ich den zugrundeliegenden Wert modifizieren, da der Wert ursprünglich nicht const war. Anders herum, wenn das int hier const gewesen wäre, würde ich undefiniertes Verhalten provozieren. Und oft passiert es tatsächlich in diesem Fall, dass Sie zwar den Wert ändern, aber der Compiler gar nichts davon mitbekommt. Das passiert dann häufig, wenn Sie ein Programm mit einem hohen Optimierungslevel übersetzen. Ich habe hier den Wert i ausgegeben. Sie sehen, der Wert i besitzt den Wert 9000, obwohl ich ihn ursprünglich mit 2011 initialisiert hatte. Ich habe ihn über einen Umweg eines nicht-const-Zeigers verändert, indem ich ihn hier dereferenziert habe. Ich zeige Ihnen noch die typeid-Funktion. Um die typeid meines const-int und nicht-const-Zeigers herauszubekommen, typeid von ConstI - das ist mein konstanter Zeiger auf int - und typeid von einem nicht konstanten Zeiger auf int. In diesem Fall bekomme ich PKi, im anderen Fall bekomme ich Pi raus. Pki steht vermutlich für Pointer Const int und Pi für Pointer int. In dieser Lektion habe ich Ihnen den const_cast vorgestellt. Der const_cast hat einen sehr einfachen Einsatzbereich. Er kann für sein Argument const und volatile entfernen aber auch wieder hinzufügen.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!