Wie funktionieren Templates?
-
moin

wie funktionieren templates denn ich verstehe den sinn von denen i-wie nicht :Smfg
-
templates sind so art schablonen, welche für beliebige typen verwenden werden können.. ganz kurz gesagt
bsp template
template<class PLATZHALTER> > PLATZHALTER addieren<PLATZHALTER a, PLATZHALTER b){ return a + b; }Verwendung:
int x=6,y=10; int erg= addieren<int>(x,y); double x=6,y=10; double erg= addieren<int>(x,y);dabei wird der code vom template vom compalieren jeweils erzeugt mit dem entsprecenden typ
-
das geht doch auch mit funktionen... worin liegt der unterschied?
-
Boris wollte beim 2. Beispiel wohl eher folgendes schreiben:
double erg = addieren<double>(x,y);Templates dienen dazu, das redundante Schreiben von Programmcode zu vermeiden.
Besonders bei Klassen ist der Nutzen enorm, z.B. arbeitet die Standard C++ Bibliothek fast ausschließlich mit templates, d.h. man kann Container oder aber Algorithmen für verschiedene Datentypen nutzen, ohne immer wieder den Source-Code zu duplizieren und die Datentypen von Hand zu ändern.
Inwieweit kannst du denn schon C++?
-
der sinn von templates ist es nicht, einfach "nur" redundanzen im code zu vermeiden. das ginge in c/c++ auch, indem man - ganz böse - mit void pointern o.ä. arbeitet und wild durch die gegend castet. templates sollen redundanzen vermeiden UND gleichzeitig typsicherheit wahren.