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

C++

Templates-Sonderfall

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sehen Sie an diesem Beispiel, dass mit Templates nicht immer alles sofort funktioniert. Der Trainer erklärt Ihnen eine Sonderform davon.

Transkript

Mit Templates kann man auch ganz raffiniert arbeiten. Erstmal muss man wissen, dass das ganz streng ist, also wenn ich hier T1 und T1 schreibe hier als Parameter für unsere austausch-Template, dann müssen die beiden Datentypen auch wirklich übereinstimmen. Es wird also keine automatische Typenkonverstierung durchgeführt, sondern das führt zu einem Fehlerfall. Wenn ich jetzt hier bei Austausch zum Beispiel ein Integer mit einem Character vertauschen will, dann muss ich das machen, indem ich hier nochmal eine explizite Funktiondefinition dazuschreibe. Hier kann ich den Vertausch genau so durchführen, das unterscheidet sich eigentlich nicht, aber hier habe ich eben eine Referenz jetzt auf v1 und eine Referenz auf ein Character, dann geht das. Das Programm oder der Compiler ist so intelligent, dass er sich dann automatisch das richtige herausfischt. Er sucht immer zuerst nach den passenden Funktionen, die hier auch schon explizit definiert sind und dann erst generiert er selber was aus den Templates, wenn es möglich ist. Wichtig ist noch, wenn man das Ganze in einem Header vesteckt für Module, dann muss man da ein bisschen aufpassen. Im Prinzip muss da ja Template komplett untergebracht werden, es genügt also nicht nur ein Kopf zu nehmen, weil da sonst nichts realisiert wird. Mehrfachrealisierungen übermehrere Module sind aber kein Problem, die werden später beim Linker wieder entfernt wenn da Dubletten sind. Umgekehrt muss man aber aufpassen, dass man nicht nur den Kopf von Austausch reinschreibt, weil das gibt auch wieder Probleme, denn dann weiß nachher der Compiler nicht genau, ob er da vielleicht eine Instanziierung versuchen soll von einem Template, wenn er die Funktion nicht findet. Also das ist ein bisschen Trickreich hier, wenn man über mehrere Module damit arbeiten möchte. Jetzt aber zum Hauptprogramm. Hier wollen wir ja wieder zwei Werte vertauschen A und B, zwei Characters, das ist noch das konventionelle, da habe ich beides mal den gleichen Datentyp und hier gehe ich jetzt aber auf die gemischten ein und vertausche die entsprechend. Und da unten nochmal mit zwei Pointern, das funktioniert natürlich auch entsprechend, fischt er sich also hier immer jeweils das richtige Element raus. So und starten wir das aber mal, hier 64, 63 wird also einfach vertauscht in der Reihenfolge und hier habe ich jetzt die Ausgabe von den beiden vertauschten Zahlen, wir hätten 63 und 66, das ist der Buchstabe B das 66 und Klammeraffe ist 64 und A ist entsprechend der Wert der da jetzt vertauscht wurde mit diesen beiden Elementen. Also auf die Art uns Weise kann man das verwenden und ich will Ihnen noch zeigen, das wenn ich jetzt hier oben die mal anders benenne, dass ich dann ein Fehler bekomme, weil dann die passende Funktion nicht mehr gefundne wird und die Template lässt sich nicht umsetzen und da kriege ich eine Fehlermeldung und hier steht dann error void austausch template-Parameter" T1" ist mehrdeutig, also er kann nicht mehr sagen, was er jetzt daraus machen soll, soll er jetzt ein Integer draus machen für zweimal glecihe Integer oder soll er ein Character draus machen, das ist eigentlich das Pudelns Kern bei der Geschichte und für solche Fälle muss man halt hier esplizit was definieren. So, starten wir nochmal schnell, so funktioniert das wieder, wenn man das entsprechend hier zurückgeändert hat.

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!