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++

Typumwandlung abgeleiteter Klassen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Polymorphismus unter OOP zeigt Ihnen der Trainer in diesem Video. Sehen Sie, wie es möglich ist, einen Pointer während der Laufzeit zu casten.

Transkript

Ich will Ihnen jetzt mal zeigen wie man Klassentypen ineinander umwandeln kann. Das ist ein bisschen tricky. Wir haben jetzt hier erst einmal unsere verschiedenen Klassen, die Fahrzeugklasse, hier id, name, preis, mit den entsprechenden Konstrukturen und einer Ausgabe, dann ein Auto, abgeleitet von Typ Fahrzeug , hier entsprechend geschwindigkeit, richtung kennzeichen mit einer entsprechenden Ausgabe und wir haben noch ein Schiff auch mit der entsprechenden Ausgabe hier. Jetzt kommt der Trick eigentlich hier im Hauptprogramm. Also ich definiere hier mir erst einmal drei Variable, die kann ich auch brav ausgeben. Jetzt kommt eigentlich das besondere. Jetzt nehmen wir mal ein Pointer vom Typ CFahrzeug *pgeneric nenne ich den. Mit pgeneric kann ich jetzt, das ist noch eine ganz normale Variante, einfach mit & c1 hier einen Pointer drauf setzten,nämlich auf meinen Fahtzeug, damit kann ich das hier auch ausgeben. Jetzt wird es ein bisschen tricky. Jetzt kann ich mit einem Typecast, CFarhzeug * muss ich hier schreiben & c2, aber auch das Auto verwenden und zuweisen, das ist erlaubt und wenn ich hier Ausgabe aufrufe in dieser Art und Weise wird auch tatsächlich hier eine Ausgaberoutine aufgerufen, aber die vom Fahrzeug und nicht die vom Auto. Das Gleiche geht hier mit c3 natürlich auch, Pointer zuweisen und Ausgaben, dann habe ich eben entsprechend das Schiff interpretiert, aber als generisches Fahrzeug. Das Ganze kann man noch ein bisschen weiter treiben. Ich kann jetzt hier mit einem Typencast auch hier direkt pgereric einfach anweisen, die Ausgaberoutine des Schiffs zu verwenden. Ich weiß ja hier wurde ein Schiff gespeichert und hier kann ich es entsprechend ausgeben. Und jetzt schauen wir uns doch erstmal soweit an was da instgesamt passiert. Das ist gar nicht kompliziertes, hier erstmal die drei Ausgaben. Und hier gebe ich jetzt drei Mal Fahrzeug aus. Mytransporter, fastcar und Titanic wird jeweils als Fahrzeug interpretiert und deshalb die Ausgaberoutine von Fahrzeug aufgerufen. Und hier unten bekomme ich das Gleiche wie hier oben, so als ob ich direkt die Ausgabe routine für meiner c3 Variablen aufgerufen hätte. Durch den Typecast gelange ich ja zur Ursprungsdefinition. Ich habe Ihnen hier unten noch was gefährliches reingeschrieben: (( CAuto *) pgeneric) - ausgabe ( ) wenn ich das mache, interpretiere ich das Fahrzeug als Auto, es ist aber zu diesem Zeitpunkt eigentlich ein Schiff. Damit das nicht passiert kann man später ein bisschen trickreicher arbeiten und sich davor schützen, sonst müsste man hier immer eine Fallunterscheidung einbauen und sich im Fahrzeug merken welcher Fahrzeugtyp es ist und dann if Fahrzeug gleich generisch, dann das, das, das if Fahrzeug gleich Auto, dann diese Routine hier aufrufen, beziehungsweise die Schiffsroutine oder die Autoroutine, Sie sehen schon, da kommt man ganz schnell durcheinander. Das ist also ein bisschen gefährlich, aber man kann es durchaus machen. Manchmal muss man auch auf diese Art und Weise mit Typecasts arbeiten, um auf die entsprechenden Klassen zuzugreufen und das schöne ist, dass man hier mit diesem pgeneric Pointer ganz allgemein arbeiten kann, egal welche Klasse das auch gespeichert ist, sowas ist durchaus erlaubt und sie dann später zurückcasten, sowas würde ohne weiteres funktionieren und könnte hier ganz allgemein mit den Methoden für Fahrzeuge arbeiten, die ja dann auch erlaubt sind und hätte dann für egal welche Klasse da zugewiesen ist, die richtigen Operationen ausgeführt.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

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!