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

Rein virtuelle Klassen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Reine virtuelle Klassen lassen sich nicht instanzieren. Erfahren Sie vom Trainer Tipps zu deren Verwendung und lernen Sie, solche zu erzeugen.

Transkript

Ich zeige ihnen jetzt mal was man unter den sogenannten puren virtuellen Methoden versteht oder den abstrakten Basisklassen. Wir haben ja unser CFahrzeug. Das ist eigentlich schon ganz nett aufgebaut, hier mit Konstruktor und so weiter. Mit der Ausgaberoutine waren wir aber von jeher nicht so zufrieden. Immer dann, wenn man eigentlch hier jetzt gar keine ausgabe definieren möchte, weil das keinen Sinn macht und man sozusagen nur eine Grundlage schaft, aber ein Fahrzeug als solches vielleicht im Programm nie vorkommt, dann kann man das hier so schreiben: virtual void, virtual ist klar, brauchen wir dann in jedem Fall, das muss eine virtuelle Methode sein, aber hier schreibe ich einfach =0 hin. Das bedeutet, ich sehe zwar vor, dass es eine Ausgaberotine geben wird, aber die definieren ich nicht in der Basisklasse. Das wird dann später in der abgeleiteten Klasse gemacht, wie wir das gehabt haben, hier mit void ausgabe, hier beim Auto und beim Schiff entsprechend auch mit der enstprechenden ausgabe. Also hier lege ich sozusagen nur den Prototyp fest, damit man erstes es man später nicht vergisst, wenn man das nämlich vergessen sollte die zu definieren, gibt es eine Fehlermeldung, weil solche abstrakten Basisklassen muss man irgedwo definieren , also die virtuellen Methoden davon muss man unbedingt definieren. Man kann sich ganze Klassen zusammenbauen, die eigentlich nur aus solchen virtuellen Methoden bestehen und sonst eigentlich keine Strukturen haben, eigentlich nur ein Sammelsurium von Methoden, die man später mal definieren muss. Sowas wird gern in Bibliotheken verwendet, vom Betriebssystem zum Beispiel, sodass man als Anwender dann die abgeleitete Klasse zunächst einmal aufbauen muss und dort die fehlenden Methoden ergänzen muss und dann eigentlich definiert. Eigentlich eine schöne Geschichte. Im Hauptprogramm ergibt sich dadurch kein großer Unterschied, das einzige ist man kann jetzt keine Objekte mehr erzeugen von Typ Basisklasse. Pointer allerdings wie CFahrzeug * pgenerig schon, die können aber nun entweder auf Auto oder auf Schiff zeigen, niemals aber auf ein reines Fahrzeug, weil Fahrzeuge kann ich jetzt nich mehr erzeugen. Aber ich starte es erstmal hier soweit. Da ändert sich wie gesagt jetzt erstmal gar nichts an unseren Ausgaben, auto, schiff, auto, schiff wird hier entsprechend einfach ausgegeben, einmal hier direkt Auto und Schiff und einmal hier über die Basisklasse. Aber ich kann Ihnen ja gerne nochmal zeigen, dass das also nicht funktioniert . Wenn ich jetzt hier zum Beispiel ein c4 deklariere , das könnte man ja machen, wir haben ein Konstruktor zwar definiert, aber wir werden gleich sehen, das funktioniert hier natürlich nicht. Der Compiler mosert uns dann sofort an, und zwar hier schreibt der, genau Fahrzeug void ausgabe ist abstrakt, da musss ich hier nochmal zurückscrollen, da kommt nich ein bisschen, error: Instanz von abstrakten Klassen Also sowas geht nicht. Das ist ganz Klar. Das will man ja auch gar nicht haben, weil wie gesagt, man macht so eine Methode ja nur dann abstrakt oder purevirtual, wenn man davon ausgeht, dass man die Basisklasse nie in ihrer alleinigen Form verwenden möchte.

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!