Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Static-Cast-Operator

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Konvertierung zwischen zwei verwandten Typen zur Compile-Zeit erfolgt in C++ durch die Verwendung des Static-Cast-Operators.
02:37

Transkript

In dieser Lektion möchte ich Ihnen den static_cast vorstellen. Der static_cast ermöglicht die Konvertierung zwischen verwandten Typen. D. h., mit ihm kann man Zeigertypen in Klassenhierarchien konvertieren. Man kann aber auch Ganzzahlen in Aufzählungen oder Fließkommazahlen in Ganzzahlen konvertieren. Der statische Cast ist dem dynamischen Cast sehr ähnlich, aber auch nur sehr ähnlich. Ein großer Unterschied ist, dass der static_cast zur Compilezeit, der dynamic_cast zur Laufzeit stattfindet, und aus dieser Eigenschaft resultiert der zweite große Unterschied. Der static_cast lässt sich nicht auf polymorphe Typen anwenden. Polymorphe Typen sind Typen, die mindestens eine virtuelle Methode besitzen und deren Typ erst zur Laufzeit bestimmt wird. Nun will ich Ihnen noch den static_cast in der Anwendung zeigen. Hier eine ganz einfache Klassenstruktur. Eine Klasse Account, von der leite ich public, die Klasse BankAccount, ab. Eine kleine enum mit red, blue und green, und schon geht es los mit dem Hauptprogramm. Den Accoutn und den BankAccount initialisiere ich mit nullptr. Jetzt zeige ich Ihnen, wie man beim static_cast in dieser Ableitungshierarchie konvertieren kann. Als erstes caste ich b mit einem sog. Hochcasten nach a. b nach a. Das geht aber auch ohne expliziten Cast. Das geht aus dem einfachen Grund ohne einen expliziten static_cast, weil ein Objekt vom Typ BankAccount automatisch auch ein Objekt vom Typ Account ist. weil BankAccount public von Account abgeleitet ist. Das sind einfach C++ Ableitungsregeln. Dann gibt es noch den Downcast. Hier muss ich aber einen static_cast anwenden. Was mache ich? Ich nehme hier eine Instanz vom Typ Account und caste sie down zu Bankaccount. Ich caste das Objekt sozusagen herunter. Hier will ich noch ein Integer in eine Color - also in eine Farbe - casten. Das geschieht, indem ich einen static_cast mit dem Ziel Color anwende. Sie sehen, ich mache es einmal ein bisschen größer, hier unten habe ich das Programm schon ausgeführt. i hat den Wert 2. color hat auch den Wert 2. Jetzt führe ich noch einen static_cast von der Fließkommazahl 3,14 zu der Integer i2 durch. Sie sehen, i2 hat hier den Wert 3 statt 3,14. In dieser Lektion habe ich Ihnen den static_cast vorgestellt. Ich habe gezeigt, dass er relativ ähnlich zum dynamischen Cast ist. Der große Unterschied ist aber, dass der statische Cast zur Kompilierzeit stattfindet, während der dynamic_cast zur Laufzeit stattfindet. Daraus resultiert auch, dass der statische Cast nicht auf polymorphe Typen angewandt werden kann.

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!