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

C++ Grundkurs

Klassen-Templates instanziieren

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Trainer erläutert in diesem Video die Vorgehensweise, um Klassen-Templates in C++ zu instanziieren.
03:28

Transkript

In dieser Lektion will ich Ihnen die Instanziierung von Klassen-Templates vorstellen. Der Prozess, die Template-Parameter durch konkrete Argumente zu ersetzen, wird als Instanziierung des Templates bezeichnet. In dem Augenblick erzeugt der Compiler eine konkrete Klasse mit diesen konkreten Argumenten. Es gibt aber bei Klassen-Templates eine Besonderheit zur Funktions-Templates. Bei Klassen-Templates kann der Compiler nie die Template-Parameter herleiten. Sie müssen sie also explizit angeben. Hier sehen Sie den Unterschied. Hier habe ich ein Funktions-Template und das Funktions-Template kann ich explizit aufrufen, ohne dass ich die Template-Argumente angebe. Sie sehen, xchg(a,b). Aus a und b kann der Compiler automatisch herleiten, dass a und b vom Typ int sind daher müssen Sie den Typ nicht angeben. Das steht im strengen Gegensatz zum Klassen-Template hier. Hier habe ich ein Klassen-Template Array. Was soll das sein? Das ist ein Array, das ich über seine Länge N und über seinen Typ T parametrisiere. Wenn ich jetzt ein konkretes Klassen-Template instanziiere, dann muss ich sowohl die Länge N angeben, als auch den Typ double. accountArray hat in diesem Fall 1000 Elemente vom Typ Account. Genau das zeige ich Ihnen jetzt in der Anwendung. Hier die Klasse Account, die sollte mittlerweile recht vertraut sein. Die Klasse Account initialisiere ich in diesem Fall mit dem Wert 0. Sie hat drei öffentliche Funktionen, Überweise Geld, Hebe Geld ab und Zeige mir, wie viel Geld ich noch auf meinem Konto habe und die private Variable balance. Jetzt zeige ich Ihnen das Array. Eine kleine Seitenbemerkung. Das Array hier soll Sie natürlich nicht verwenden. Es gibt im C++ Standard einen Datentyp, der nennt sich std::array und kann alles, was Array kann, aber noch viel, viel mehr. Zurück zum Sourcecode. Array ist ein Array, das über seine Länge, und seinen Typ parametrisiert ist. Was macht das Array? Es hat intern ein C-Array, in dem es seine Elemente hält. Die Elemente vom Typ T und das C-Array besitzt genau N Elemente. Zwei Methoden besitzt das Array. Einerseits einen Default-Konstruktor und andererseits eine Methode, um die Länge hier rauszubekommen. Diese Methode getSize definiere ich diesmal außerhalb des Klassen-Templates. Die Syntax ist ein bisschen anspruchsvoller. Schauen Sie her, hier definiere ich die Funktion getSize. Als erstes muss ich template von hier oben wieder voranfügen. Als zweites muss ich hier noch die Template-Parameter nochmals angeben. Dann implementiere ich mit dieser Methode die Methode, die ich hier deklariert habe. Das ist also die Definition dieser Methode. Die Anwendung ist relativ einfach. Ich instanziiere hier ein Array von 10 doubles und gebe die Größe aus über doubleArray.getSize. Ich instanziiere hier ein Array von 1000 Accounts, gebe die Größe aus über getSize und Sie sehen, es kommt genau das raus, was ich reingesteckt habe 10 und 1000. In dieser Lektion habe ich Ihnen die Instanziierung von Klassen-Templates vorgestellt. Ich habe Ihnen gezeigt, dass Klassen-Templates eine Besonderheit gegenüber Funktions-Templates besitzen. Bei Klassen-Templates müssen Sie immer explizit die Typen spezifizieren, so wie hier. Der Compiler kann die Typen nicht wie bei Funktions-Templates herleiten.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!