C++

Ableitung von Klassen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine sehr praktische Möglichkeit unter OOP ist es, abgeleitete Klassen zu erzeugen und diese um die jeweiligen Bedürfnisse zu erweitern. Lernen Sie, was es damit auf sich hat.

Transkript

Es geht jetzt um abgeleitete Klassen. Das ist ja manchmal ganz praktisch, wenn man eine Klasse definiert, aber die allein macht noch nicht glücklich. Vielleich möchte man eine neue Klasse deklarieren, die aber abgeleitet ist von ein bestehenden Klasse, das heißt, man kann die Methoden und auch Variablen die man schonmal definiert hat mit verwenden. Ich zeige Ihnen aber am besten einen Beispiel was das eigentlich genau bedeutet. Also hier habe ich jetzt mal eine Klasse CFahrzeug. Das soll jetzt ein allgemeines Fahrzeug sein, hat eine Identifikation id genannt, einen Namen und von mir aus einen Preis. Dann haben wir natürlich hier die entsprechenden Konstruktoren, hier zum Initialisieren der entsprechenden Daten und einen Konstruktor mit Parametern, mit name, id und preis. Damit ich das auch entsprechend festlegen kann hier mit einem festen array damit wir dann nicht so kompliziert mit dem malloc arbeiten müssen. Und ich habe eine ausgabe,damit ich die Daten nachher später anschauen kann. Also das ist damit eine abgeschlossene Klasse. Jetzt möchte ich vielleicht eine Klasse Auto definieren. Nun, damit ich nicht alles von vorne schreiben muss, ich könnte ja diese ganzen Routinen da reinkopieren, das wäre natürlich langweilig, kann man solche Klassen von anderen Klassen ableiten. Sie erben damit die gemanten Eigenschaften und Methoden der vorhergehenen Klasse. Also ich schreibe hier :CFahrzeug und habe damit eine kombinierte, könnte man sagen Klasse, Auto hat also was Fahrzeuig hat, aber dazu eben noch neue Informationen, eine Position x y, eine richtung, eine geschwindigkeit und vielleicht ein kennzeichen. Und dazu brauche ich natürlich jetzt auch wieder einen Initialisierer, einen Konstruktor, damit ich überhaupt diese Daten da reinschreiben kann. Das besondere ist, dass ich jetzt diesen Konstruktor so definieren muss, dass er mir natürlich auch die Basisklasse CFahrzeug hier mit initialisiert. Das macht man eigentlich normalerweise wie folgt: Hier schreibe ich den Konstruktor erstmal mit einem Parameter hin, name, id, preis, kennzeichen alles was ich hier so brauche und jetzt kann ich das CFahrzeug initialisieren, indem ich hier mit Doppelpunkt getrennt den Klassen schreibe und in Klammern die Parameter. Das ist also genau der Konstruktor, den wir hier oben definiert haben. Den gebe ich aber hier an bevor ich in die geschweiften Klammern übergehe und kann damit die Initialisierung von CFahrzeug durchführen. Wenn jetzt hier private Elemente zum Beispiel sind, kann ich nämlich von hier aus nicht so ohne weiteres auf die private Elemente zugreifen, das ist normalerweise auch verboten, die sind natürlich genau so geschützt, deshalb macht man so, dass man hier entsprechend einen Konstruktor aufruft und dann den Rest initialisiert, den ich hier in dieser Klasse noch definiert habe. Und dann brauche ich natürlich auch eine Ausgabe. Ich überschreibe aber damit die Methode Ausgabe, die ich hier unten in der Basisklasse definiert habe und damit ich trotzdem die Ausgabe nutzen kann, wenn ich das möchte, kann ich hier mit einem Doppelpunkt Doppelpunkt auf die CFahrzeungklasse zugreifen und dort die spezielle Ausgaberoutine verwenden, ich kann überhaupt wenn ich hier mal Doppelpunkt eingebe, kriege ich hier eine Liste, normalerweise bei Visual ++ ist es zum Beispiel so. Auch bei anderen Umgebungen im Allgemeinen bekommt man da eine Hilfe und sieht was hier alles Möglich ist, aber Ausgabe wäre die Methode, das heißt hier rufe ich die alte Methode auf und gleichzeitig ergänze ich die durch das Kennzeichen, was ich hier noch zusätzlich ausgebe. Jetzt kommen wir mal zum Hauptprogramm und schauen uns das Ganze mal an wie das funktioniert. Ich definiere hier eine Variable c1 mytransporter mit entsprechenden Daten und dann eine Variable c2 ein Auto. Die hat natürlich hier mehr Informationen, verwendet aber intern die Datenstrukturen, die ich im CFarhzeug definiert habe und das gebe ich mal aus. So, schauen wir mal an was da rauskommt. Erstmal hier fahrzeug:mytransporter, zweites fahrzeug:fastcar, aber zusätzlich wird die Kennzeicheninformation ausgegeben Weil wir hier oben ein Endline ausgeben kommt es natürlich hie in der nächsten Zeile. Sie können ja mal versuchen das so umzubauen, dass man das hier in einer Zeile bekommt.

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!