Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Sabloane

c



+ Font mai mare | - Font mai mic



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.



Functii generice

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

O functie cu doua clase generice

#include<iostream.h>

template <class tip1 class tip2>

void function tip1 x tip2 y

main

Supraincarcarea explicita a unei functii generice

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1117
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved