Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Funkcijų šablonai<br />
Pačioje šablonų ats<strong>ir</strong>adimo pradžioje kai kurie programuotojai juos laik÷ tik<br />
griozdišku programavimo kalbos C preprocesoriaus makrosų pakaitalu. Standartinis<br />
pavyzdys - funkcijos min <strong>ir</strong> max:<br />
// minmax.cpp<br />
#define MIN(x, y) ((x) < (y) (x) : (y))<br />
#define MAX(x, y) ((x) > (y) (x) : (y))<br />
Pakeiskime šiuos C makrosus C++ funkcijų šablonais:<br />
template<br />
T min (T x, T y)<br />
{<br />
return x < y x : y;<br />
}<br />
template<br />
T max (T x, T y)<br />
{<br />
return x > y x : y;<br />
}<br />
Prieš kiekvieną funkcijos šabloną eina užrašas template arba<br />
template , kur AAA yra tipo parametro vardas. Funkcijos min šablono<br />
parametras yra tipas T, kuris nebūtinai turi būti klas÷s vardas. Reikalaujama, kad<br />
tipas tur÷tų konkrečias savybes, bet nereikalaujame, kad priklausytų konkrečiai<br />
klasių hierarchijai. Mūsų pavyzdyje tipui T turi būti apibr÷žtos palyginimo<br />
operacijos > <strong>ir</strong>