Șabloanele sunt concepute pentru generarea rapidă a unor noi clase sau funcții care au aceeași funcționalitate. Uneori clasele de șablon și funcțiile numite clase și funcții generalizate sau generice.
Deoarece parametrii șablonului sunt ele însele tipuri, valori, și, uneori, aceste tipuri.
template-uri de funcții sunt generate automat tipurile de argumentele lor, pentru clasele trebuie să specificați explicit parametrii șablonului la crearea unui obiect.
Metode de clasă pot fi, de asemenea, șabloane. Metodele de șabloane de clasă sunt șabloanele deja.
definiţia șablonului
Modelele sunt definite de cuvinte cheie pentru care parametrii șablonului enumerate în paranteze unghiulare. Aceasta este urmată de definiția obișnuită a unui obiect șablon, adică funcție, metodă sau clasă. Dacă parametrul șablon este tipul, acesta este determinat de TYPENAME cuvinte cheie. parametrii șablonului funcție trebuie să fie utilizate în descrierea argumentelor.
utilizarea de template-uri
Un șablon este utilizat ca o funcție obișnuită sau clasă. În acest din urmă caz, după numele în unghiul paranteze indică valorile parametrilor de șablon, în cazul în care nu sunt stabilite în mod implicit. Mai jos este un exemplu de utilizare șabloanele definite mai sus.
modele de substituție
În cazul în care pentru anumite tipuri este încă o schimbare internă nevoile funcționale, puteți defini un alt șablon cu același nume, specificând tipurile sau prin introducerea parametrilor specifici. De exemplu, pentru clasa Arrayn de mai sus, sub doi substituenți șablon definit. Pentru concizie, această clasă goale cu o singură metodă pentru a determina ce fel de șablon este utilizat.
Pentru șabloanele funcție în loc de înlocuire, puteți utiliza funcția supraîncărcării.
ca un parametru de șablon șablon
Dacă șablonul utilizat de alt șablon parametru, paranteze unghiulare nested trebuie să fie separate de spațiul din jurul parantezelor unghiulare.
Compilatoare diferite pot avea propriile lor particularități atunci când se lucrează cu șabloane.