Prikaz jedne poruke
Stara 5.9.2013, 22:09   #3
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 3.851
Zahvalnice: 602
Zahvaljeno 1.161 puta na 601 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: Genericko programiranje (OOP)

Znaci to je nas naziv za templejt

Jednostavno objasnjenje bi bila templejt klasa za 2d vektor:

Kod:
template <typename T>
class Vector2D
{
private:
    T m_X;
    T m_Y;

public:
    // Razne metode
};
T ti je u principu nepoznati tip podatka koji hoces da koristis u svojoj klasi. Zasto bi ti on bas trebao? Pa recimo kada pravis igru koordinate objekata ces predstavljati preko float vektora, dok ce ti pak velicina sprajta biti predstavljena preko int vektora, nesto levo mozda trazi long vektore itd. Umesto da pravis razlicite klase koje rade jedno te isto samo nad drugacijem tipu podataka, ti si napravio templejt klasu koja moze da prihvati razlicite tipove podataka u obliku:

Kod:
Vector2D<int> spriteSize;
Vector2D<float> spritePosition;
Naravno za kompleksnije potrebe mozes da koristis nepodrazumevane tipove podataka tj. tvoje neke klase/strukture ali onda moras da pazis da ako u templejt klasi pozivas npr:

Kod:
T* object;
// ...
object->SeekThePathToObscurity();
taj metod bude zapravo implementiran u odgovarajucim klasama.
Andross je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Andross na korisnoj poruci:
PeTkO (5.9.2013)