Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

Template-Class

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Templates können Sie auch auf Klassen anwenden. Erfahren Sie vom Trainer Tipps bei dieser Vorgehensweise.

Transkript

Mit solches Templates kann man aber nicht nur einfache Methoden definieren und Funktionen, sondern ganze Klassen und dann wird das richtig raffiniert, hier mal mit einem Parameter template . Nun kann ich in der Klassendefinition die ich hier unten habe T1 verwenden, so als ob ich jetzt hier einen Datentyp einfach hinschreiben würde. Dieser Datentyp ist aber recht generisch also nicht nur auf Integer Character und sowas beschränkt, das kann selbst sogar eine ganze Klasse sein und ich zeige Ihnen das auch hier gleich ein Beispiel. Also hier nehmen wir jetzt einfach mal T1 als ob es ein ganz normaler Datentyp wie Integer, Long oder sowas wäre und schreibe damit sozusagen meine Klasse. Habe ich hier, alles hier machen wir ein Konstruktor das ist jetzt ein Pointer auf T1, denn setzt man hier auf 0, dann habe ich hier ein Konstruktor mit einem Parameter n, der initialisiert praktisch ein array von diesem Typ T1 mit new oder ich habe hier auskommentiert mit dem alloc könnte man genau so machen. Der Wert hier n sagt mit dann wie groß das Feld ist. Der Destruktor muss es entsprechend freigeben und mit Define kann ich das dynamisch verändern, also die Größe dieses arrays praktisch abändern, dann habe ich getsize für die Größenermittung, also es ist nur eine kleine praktische Klasse die man durchaus verwenden kann und hiet T1 get, das soll mit den Wert vom Datentyp T1, das muss man ja hier an der Stelle auch ganz gnerisch schreiben vom Index idx holen und mache dann einfach hier ein return-Pointer, was auch immer das für ein Datentyp ist. Und mit z umgekehrt T1 val setzte ich dann den Wert dieses Feldes. Damit es nicht langweilig wird habe ich hier noch eine kleine Klasse definiert, die Klasse rdk besteht aus i1 und einem buffer, keine große Geschichte hier nur noch ein Konstruktor der das initialisiert. Und der Trick ist jetzt nun, dass ich hier in meinem Hauptprogramm diese Klasse anwenden kann, hier gebe ich direkt die Instanziierung als Integer an und dann habe ich hier mit c1 ein Objekt mit 10 Elementen definiert. Nun kann ich jetzt hier den Wert auf 0 setzen und mit get kann ich ihn wiederholen. Ich kann auch das Feld vergrößern auf 100 Elemente, hier zum Beispiel also 0-99, das Letzte element dann besetzten mit 234 und wieder ausgeben. Das Trickreiche ist, dass ich das aber jetzt auch mit meiner Klasse machen kann, also rdk ist ja eine Klassendefinition, c2a oder Strukturen könnte man übrigens auch nehmen. Und hier muss ich jetzt einfach myclass schreiben. Damit jetzt diese generische Myclass, damit auch generiert wird vom Compiler und dabei gleich ein Objekt c2ara mit 30 Elementen erzeugt. und wenn ich jetzt da Werte reinschreiben will, dann kann ich das mit set tun, aber set erhält jetzt als zwiten Parameter des Objekt, weil rdk ist ja jetzt immer der Datentyp, also muss ich hier das c2a, nämlich auch verwenden, deshalb habe ich hier oben dieses c2a auch entsprechend angegeben, i1 zum Beispiel initialisieren und hier mit c2a ara.get (1) hole ich mir das Element 1, also 0-1 gezählt jetzt raus, .i1 ist dann aber der entsprechende Wert, weil c2ara ja den Datentyp rdk zurückliefert und ich muss natürlich jetzt hier für eine Ausgabe noch sagen was ich genau haben möchte. Ich starte mal das Ganze mal ohne Denug und schauen uns an was da passiert Naja hier oben haben wir die beiden Integerwerte gespeichert und hier kommt auch tatsächlich der Wert 9 raus, den ich hier abgelegt habe. Ich könnte natürlich hier auch den Buffer belegen. Das können Sie jetzt gerne mal zu Hause auch gleich als kleine Übung ausprobieren.

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!