Spis treści

Szablony

Szablon funkcji

template <class Typek>
Typek& pewna_funkcja(Typek x)
{
    return x;
}

Szablon klasy

template <class Typek>
class Klasa
{
   Typek *x;
   void Metoda();
}

Szablon funkcji składowej (metody)

template <class Typek>
void Klasa<Typek>::Metoda()
{
 
}

Wzorzec klasy Wektor

Zaimplementuj szablon klasy Wektor, który w dynamicznie przydzielonej tablicy o określonym rozmiarze, przechowuje elementy dowolnego typu. Klasa ta powinna implementować następujące metody:

Przykładowy kod testujący klasę:

Wektor<int> liczby;
for(int i=0;i<100;i++) liczby.Dodaj(i);
cout << "Rozmiar " << liczby.Rozmiar() << " elementow " << liczby.IleElementow() << endl;
 
float wsp[]={1,2,3,4,5};
Wielomian w1(wsp,4);
 
Wektor<Wielomian> wektor_wielomianow;
for(int i=0;i<100;i++) 
{
   Wielomian w2=w1 * liczby[i];
   wektor_wielomianow.Dodaj(w*i);
}
 
cout << "Wyswietlam pewien wielomian : " << wektor_wielomianow[5] << endl;

Zadania dodatkowe
Dodaj do klasy Wektor:

Iterator

Dodaj do klasy Wektor:

W tym przypadku iterator swobodnego dostępu będzie po prostu wskaźnikiem typu T*. Wystarczy więc przezwać ten typ używając polecenia typedef.

Przykładowe użycie:

Wektor<int> wektor;
for(int i=0 ; i<100 ; i++) wektor.Dodaj(i);
 
Wektor<int>::iterator it;
for(it=wektor.begin() ; it!=wektor.end() ; it++) cout << *it << endl;