Șablon

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă sunteți în căutarea mecanismului șablon în Wikipedia, consultați Ajutor: Șabloane .

Termenul șablon în limba engleză ( [ˈtɛmplɪt] , literalmente „formă” sau „ turn[1] ) în informatică indică un document sau program în care, ca într -o foaie de hârtie semi-completată , pe o structură generică sau standard există temporar spații " goale " care urmează să fie completate ulterior. În acest context, cuvântul în italiană poate fi tradus ca „model”, „semicompilat”, „schemă”, „structură de bază”, „schelet general” sau „schelet”, sau mai frecvent „modul”, deși de obicei nu este atât de elaborat și sofisticat.

Documente electronice

Termenul șablon se referă, de asemenea, la un model de document (de exemplu, Microsoft Office sau Apache OpenOffice ) în care datele externe sunt importate cu o anumită frecvență. Paginarea ( aspectul ) paginii rămâne neschimbată de fiecare dată, facilitând căutarea și arhivarea documentelor, comparația între versiuni sau o imagine a companiei în exterior. Lucrând cu foi de calcul , șablonul servește nu numai ca foaie de stil pentru aspectul grafic, ci conține formule care fac documentele comparabile în timp.

Web

În domeniul paginilor web, șabloanele sunt acele exemple de documente care sunt puse la dispoziție gratuit sau contra cost pe site-urile de internet, pentru dezvoltarea altor pagini web cu grafică și formatare identice, dar conținut diferit. Acestea sunt un instrument util și puternic pentru cei care doresc:

  • creați un site cu un stil uniform, fără a avea multe abilități,
  • folosiți codul care este adesea corect dacă este validat,
  • obțineți o paginare (aspect) ușor de utilizat și rafinată grafic.

Adesea, în șabloanele gratuite, un link către site-ul autorului este inserat în partea de jos a paginii, ceea ce este bine de lăsat pentru a nu merge împotriva licențelor sub care sunt distribuite șabloanele.

Principalele limbaje ale web-ului sunt utilizate de obicei, HTML pentru conținut și CSS pentru formatare, dar în Flash nu lipsesc exemple.

Programare

În jargonul de calculator de programare acesta este utilizat pentru a defini funcționalitatea C ++ limbaj , care vă permite să scrie cod de lucru , indiferent de tipul de date care vor fi utilizate efectiv în execuție . Cu alte cuvinte, șabloanele sunt mijloacele prin care C ++ acceptă programarea generică . Acest mecanism este prezent în alte limbi, cum ar fi Java .

Folosind șabloane este posibil să creați cod care are un grad ridicat de reutilizare , economisind programatorului o mulțime de muncă redundantă. De exemplu, va fi posibil să implementați o listă fără să vă gândiți deloc la tipul de cod pe care îl va utiliza de fapt. Un alt exemplu ar putea fi o funcție care sortează matricele : în aceste cazuri este suficient să se specifice numai operațiile de swap și funcția de sortare dorită (ordine crescătoare sau descendentă).

Biblioteca de șabloane standard C ++ (STL) oferă programatorului multe caracteristici utile într-o structură elegantă de șabloane.

Există două tipuri de șabloane în C ++: funcții de șabloane și clase de șabloane .

Funcții

O funcție șablon se comportă ca o funcție care poate lua argumente și furniza valori de tip generic. De exemplu, Biblioteca de șabloane standard oferă funcția șablon max(x, y) care returnează x sau y, oricare dintre acestea este mai mare, care ar putea fi definită astfel:

 șablon < typename T > T max ( T x , T y )
{
    dacă ( x < y )
        returnează y ;
    altceva
        returnează x ;
}

Apelul la funcția max nu diferă de cel la o funcție normală:

 cout << max ( 3 , 7 ); // scrieți 7 la ieșire

Compilatorul nu poate încerca cel puțin să ghicească tipul care va fi de fapt folosit la runtime. Chiar dacă în principal există un singur apel max(int, int) cu siguranță nu poate lua inițiative, de asemenea, deoarece pot exista o serie de condiții care, în funcție de caz, pot deranja apelurile. Tocmai din acest motiv, clasele sau funcțiile care utilizează șabloane nu pot fi implementate în fișiere cu extensia .cpp, deoarece compilatorul nu poate decide ce se va întâmpla la runtime. Prin urmare, implementările trebuie să rămână în fișierul de definiție, adică fișiere cu extensia .h sau .hpp.

Cu toate acestea, la timpul de execuție, sistemul examinează argumentele, determină că este un apel la max(int, int) și instanțiază o versiune a funcției în care tipul int este utilizat în locul lui T

Acest proces funcționează dacă argumentele x și y sunt numere întregi, șiruri sau orice alt tip pentru care are sens să spui „ x < y ”. Dacă utilizați propriul tip de date, trebuie să definiți semnificația < pentru acel tip (prin suprascrierea operatorului < ) pentru a utiliza max(x, y) .

Ca contraexemplu, luați în considerare tipul complex standard, care nu definește operatorul < deoarece numerele complexe nu pot fi sortate. Deci, dacă scriem cod care încearcă să apeleze funcția șablon max(x, y) , unde x și y sunt de tip complex , vom primi o eroare de compilare.

Clase

O clasă șablon extinde același concept la clase.

Un exemplu de clasă care folosește șabloane poate fi următorul:

 template < typename T > clasa Vector ;
șablon < typename T > clasă Nod ;

template < typename T > Vector clasă
{
privat :
    int __size ;
    Nod <T> cap *;
    Nod < T > * coada ;

public :
    Vector ();
    adăugare nulă ( T );
    int size ();
    T mai întâi ();
    T last ();
    bool isEmpty ();
};

Implementările trebuie să fie conținute în fișierul antet. În acest moment din main (sau într-un alt fișier) va fi posibil să utilizați următorul vector generic pur și simplu specificând tipul dorit, în următoarea formă:

 Vector < șir > v1 ;
v1 . add ( „exemplu” );
v1 . add ( „de” );
v1 . add ( „șablon” );

Vector < int > v2 ;
v2 . adăugați ( 1 );
v2 . adăugați ( 2 );
v2 . adăugați ( 3 );

Este evident că, cu o singură implementare, am implementat un mod unic de a crea liste de orice tip. Trebuie doar să specificați tipul din parantezele unghiulare și atât.

Notă

  1. ^ Cuvântul își are originea ca diminutiv al templului francez , din latinescul templum , care înseamnă „băț mic” pentru utilizări arhitecturale („Șablon” în Collins Concise English Dictionary , 1978, ISBN 0004330463 ).
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT