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

Explicit-Class

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Um den richtigen Überblick über die Sourcefiles zu bewahren, werden Header-Dateien strikt von den cpp-Dateien getrennt. Erkennen Sie in diesem Video, wie der Trainer Templates explizit instanziert und richtig deklariert.

Transkript

Ich möchte Ihnen jetzt zeigen,wie man eine explizite Instanziierung durchführt. Wenn man mit Modulen arbeitet und mit Templates dann braucht man sowas zum Beispiel, weil sonst eventuell die einzelnen Templates mehrfach erzeugt werden was nicht ganz so schlimm ist, weil der Linker später entfernt Dubletten oder eben überhaupt nicht, denn das wäre ja problematischer oder wenn es nicht eindeutig ist. Also ich zeige Ihnen einfach mal wie man das amchen kann. Hier habe ich ein Hauptprogramm und dort möchte ich halt meine Template verwenden in define1, in dem Header haben wir sie ja sie alle definiert und ich zeige Ihnen mal hier der aufruf ist ganz normal, wie wir das vorher hatten myclass <c1 auch mit den default-Parametern und hier habe ich eben eine entsprechende zweite hier, mit meinen eigenen Objekt. Jetzt gehen wir mal ins define rein. Das ist auch noch nichts ungewöhliches, hier definiere ich einfach das Template nämlich myclass, Klasse und die entsprechenden Parametern, aber set und get habe ich jetz hier zum Beispiel nicht implementiert, die möchte ich gern außerhalb realisieren und getsize hier schon, also das kann man sich hier aussuchen wir man das möchte und meine Klasse ist hier auch komplett reingeschrieben, das ist auch kein großes Problem und den Implement, da kommt jetzt eingentlich das Besondere, da mache ich auch ein include von unseren Headern, das ist ganz wichtig, natürlich brauche ich hier die entsprechenden Köpfe für die Klasse und hier habe ich meine Implementierung, Template wird hier genau so angegeben, myclass das macht man wie es im Prinzip bei anderen Klassendefinitionen auch üblich ist die Template kommen halt hier vorne dran, mit genau den Köpfen aber ohne default-Werte Initialisierung, das macht man nur im Header und bei der Deklaration im Prinzip eigentlich nur nötig, während die definition hier der Methoden, da brauche ich sowas nicht. Das ist ganz klar und hier unten kommt jetzt eigentlich unsere explizite Instanziierung. Hier schreibe ich jetzt rein: template class myclass< und template class myclass, das heiß ich brauche diese Varianten, nämlich hier mit dem Default-Integer und10 und hier mit rdk und 30. Jetzt weiß der Compiler, dass er die beiden Funktionen generieren muss, macht es hier auch entsprechend, hier hat er auch alle Methoden definiert, die er dazu braucht und kann hier dann den Aufruf auch entsprechend realisieren. Das starten wir jetzt mal und da kommt natürlich das gleiche raus wie wir das in vorhergehenden Beispielen ja auch schon hatten. Und jetzt zeige ich Ihnen was passiert, wenn man hier einen weglässt. Das kommt jetzt drauf an, ob das zum Fehler führt muss nicht unbedingt sein aber wir schauen mal hier gibt es natürlich einen Fehler, sonst hätte ich das Beispiel nicht vorbereitet, weil er hier nämlich eine Funktion nicht auflösen kann, nämlich genau den Aufruf für Integer, Sie sehen schon für die beiden Funktionen get und set, die wurden nämlich jetzt nicht realisiert. Er hat natürlich hier versucht einen Template-Kopf zu generieren, also alle Aufrufe so, als ob man das jetzt mit der Klasse reinschreibt, aber was der Compiler nicht wusste, ist dass hier verborgene Implement cpp, ja noch zwei reste sozusagen von der Klasse verborgen waren, die auch mit Templates definiert sind, die hat er nicht realisiert speziel für unsere Variante Integer Komma 10, erst wenn ich das hier wieder reinschreibe kann ich das Ganze auch komplett Übersetzen und dann funktioniert das ganze Beispiel wieder.

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!