CATEGORII DOCUMENTE |
Sabloane
O caracteristica relativ noua in C++ este sablonul (template). Cu un sablon este posibil sa creati functii generice. Intr-o functie sau clasa generica, tipul de date asupra caruia opereaza acestea este specificat ca un parametru. De aceea, puteti folosi o functie sau o clasa cu mai multe tipuri de date diferite, fara sa rescrieti versiunile specifice acestora.
O functie generica defineste un set general de operatii care vor fi aplicate unor tipuri de date variate. Unei astfel de functii tipul de date asupra caruia va opera ii este transmis ca parametru. Utilizand acest mecanism, poate fi aplicata aceeasi procedura unui domeniu larg de date. Creand o functie generica, puteti defini natura algoritmului, independent de date. O data facut acest lucru, atunci cand se executa functia, compilatorul genereaza automat codul corect pentru tipul de date folosit efectiv. In esenta, cand creati o functie generica, creati o functie care se supraincarca singura, automat.
O astfel de functie este creata cu ajutorul cuvantului cheie template.
template <class Tip> tip-retur nume-functie lista parametri
Tip este un nume care tine locul tipului de date folosite de catre functie. Dar, el tine doar un loc pe care compilatorul il va inlocui automat cu tipul de date efectiv, atunci cand va crea o versiune specifica a functiei.
#include<iostream.h>
template <class X> void inlocuieste X &a X &b
main
#include<iostream.h>
template <class tip1 class tip2>
void function tip1 x tip2 y
main
Chiar daca o functie sablon se supraincarca singura cand este necesar, puteti sa o supraincarcati si explicit. Daca supraincarcati o functie generica, atunci ea suprascrie (sau "ascunde") functia generica relativ la acea versiune specifica.
#include<iostream.h>
template <class X> void inloc X &a X &b
//aceasta surpascrie versiunea genrica a inloc()
void inloc int &a int &b
main
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1117
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved