Salt la conținutul principal
Modulul 8 · Lecția 1 din 217/18 în curs~12 min
Lecții din modul (1/2)

Șabloane de funcție

Șabloane permit scrierea codului generic în C++. Prin intermediul șabloanelor, putem defini funcții sau clase care operează pe parametri de tip generic, lăsând compilatorul să genereze codul propriu-zis pentru tipurile specifice solicitate.

Definirea unui șablon de funcție

Pentru a defini un șablon de funcție, precedăm definiția funcției cu cuvântul cheie template, urmat de lista de parametri de tip incluși între paranteze unghiulare <>. De obicei, typename sau class este folosit pentru a declara un tip generic.

C++
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
    return a + b;
}

Apelul funcției și deducerea argumentului șablonului

Când apelăm funcția, putem specifica în mod explicit tipul între paranteze unghiulare:

C++
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);

Cu toate acestea, compilatorul C++ este de obicei capabil să deduce tipul automat din parametrii de intrare trecuți (Deducerea argumentului șablonului):

C++
int res1 = add(5, 10); // The compiler deduces that T is int

Încercați-l singur

Exercițiu#cpp.m8.l1.e1
Încercări: 0Se încarcă…

Definiți un șablon de funcție numit myMax care preia doi parametri de tip generic T și returnează cel mai mare dintre cei doi.

Se încarcă editorul...
Afișează indiciu

Începeți prin a scrie `template <typename T>` urmat de semnătura `T myMax(T a, T b)`.

Soluție disponibilă după 3 încercări

Exercițiu#cpp.m8.l1.e2
Încercări: 0Se încarcă…

Scrieți un șablon de funcție numit printPair care preia doi parametri de tipuri generice diferite T1 și T2 și imprimă cele două argumente separate printr-un spațiu folosind std::cout.

Se încarcă editorul...
Afișează indiciu

Declarația șablonului trebuie să specifice doi parametri: `template <typename T1, typename T2>`.

Soluție disponibilă după 3 încercări