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

C++

Spezialisierte Templates

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Dieser Film zeigt Ihnen, wie Sie Templates generieren, die mit Pointern arbeiten können, um das gewünschte Ergebnis zu erzielen.

Transkript

Ich möchte Ihnen nun zeigen, was es mit den sogenannten spezialisierten Templates auf sich hat. Wie haben ja schon gesehen, man kann Templates überschreiben, indem man eine Funktion mit der gleichen Signatur definiert oder beziehungsweise mit einer speziellen Signatur mit Integer als Parameter und so weiter, der Compiler fischt sich das raus. Das hat aber Probleme, wenn man mit mehreren Modulen arbeitet. Im Header kann man das nämlich nicht unterbringen, weil die Funktion dann mehrfach definiert wird und es gibt Probleme damit. Aber umgekehrt muss ich die Funktion aber im Header definieren, damit der Compiler nicht versucht hier eine Instanz vom Template zu erzeugen. Das würde nämlich nicht funktionieren. Also amcht man folgenden: Im [unverständlich] hat mach sich da was ausgedacht, template < definiert ein spezialisiertes Template. Das ist eigentlich nichts anderes wie eine Funktionsdefinition, das kann ich aber jetzt im Header hier diesen oberen Teil, kann ich im Header unterbringen und deklariere mir praktisch hier die Funktion austausch als ein spezielle Template von austausch von dieser generischen Form. Hier als Beispiel habe ich jetzt mal ein vertausch-Template mit char** gemacht, ich zeige Ihnen auch gleich wozu man das brauchen kann, vertauscht eigentlich auch den Inhalt aber diesmal mit *, eine Indirektionsstufe mehr und das kennen wir schon hier mit dem Kopieren den Inhaltes mit char *. Und im Hauptprogramm habe ich jetzt den aufruf, nämlich hier einmal zwei Pointer und ich übergebe jetzt die Adresse des Pointers und möchte dann dass die Poniter vertauscht werden. Das ist also die erste Variante und hier übergebe ich den Buffer 1 und Buffer 2 umd möchte, dass der Inhalt vertauscht wird. Starten ohne Debug, sonst bleibt mir das Fenster nicht stehen und dann sehe ich hier Welt Hallo, Welt2 Hallo2. Und nur um Ihnen zu zeigen was passiert, wenn ich das hier nicht einbaue, dann verwendet er nämlich automatisch ein passendes Template oder Funktion was auch immer gerade passt, das wird dann also das Template sein und da steht hier oben plötzlich Hallo Welt, das heißt er hat das nicht vertauschen können, eventuell kommt sogar eine entsprechende Meldung vom Compiler, dass da was schief geht, das muss aber nicht immer so sein. So, jetzt kommentiere ich das wieder raus, damit das wierder richtig funktioniert und mit dieser zusätzlichen Funktion austausch hier, mit char **, ist er auch in der Lage hier die Adresse des Pointers zu übergeben, das ist ja praktisch ein char * was er hier bekommt, der Pointer, die Adresse des Pointers ist ein Zeiger auf einen char * und damit habe ich praktisch ein * * als Parameter. Ja und damit können Sie jetzt auch über Modulgrenzen hinweg, nicht vergessen in einem gemeinsamen Header alle Template-Köpfe hier definieren und hier aber, da muss man eben alles definieren, den gesamten Template sonst funktioniert das eben auch wieder nicht, weil er ja hier das funktionselement erst realisieren muss durch die Parameter und kann es nicht in irgendeinem Modul heraussuchen und dort compelieren, das funktioniert natürlich nicht nach dem Prinzip wie der C++ Compiler arbeitet.

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!