Predloge (templates) uporabljamo takrat, kadar želimo izvesti nad različnimi podatki identične operacije. Predloge nam omogočajo, da zapišemo implementacijo funkcije samo enkrat, kopije z ustreznimi tipi (konkretne funkcije) pa napravi prevajalnik v času prevajanja.
template <class T>
T max(T vr1, T vr2, T vr3)
{
T max = vr1;
if (vr2 > max) max = vr2;
if (vr3 > max) max = vr3;
return max;
}
#include <iostream>
using namespace std;
int main()
{ int i1,i2,i3;
cout << "Vpisi tri cela stevila: ";
cin >> i1 >> i2 >> i3;
float f1,f2,f3;
cout << "Vpisi tri realna stevila: ";
cin >> f1 >> f2 >> f3;
char c1,c2,c3;
cout << "Vpisi tri znake: ";
cin >> c1 >> c2 >> c3;
cout << "Najvecje celo stevilo: ";
cout << max(i1,max(i2,i3)) << endl;
cout << "Najvecje realno stevilo: ";
cout << max(f1,max(f2,f3)) << endl;
cout << "Največji znak: ";
cout << max(c1,max(c2,c3)) << endl;
system("pause");
return 0;
}
Vse funkcije, definirane z določeno predlogo, imajo enako ime, zato prevajalnik določi pravo funkcijo s prekrivanjem.
Prekrijemo lahko tudi samo šablono, tako da: