Wie funktionieren Templates?



  • moin 😉
    wie funktionieren templates denn ich verstehe den sinn von denen i-wie nicht :S

    mfg



  • 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.


Anmelden zum Antworten