Szablon funkcji
template <class Typek> T& 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() { }
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:
Wektor(int rozmiar) inicjuje wektor o podanej pojemności[] pozwalający odwołać się do konkretnego elementu wektoraIleElementow zwraca ilość elementów (nie pojemność wektora)Rozmiar podaje pojemność wektoraDodaj umieszcza element na końcu wektora (jeśli pojemność wektora jest za mała należy ją zwiększyć, np. dwukrotnie).Usun usuwa ostatni element wektora.Wyczysc usuwa wszystkie elementy z wektoraPrzykł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; Wektor<Kwadrat> wektor_kwadratow; for(int i=0;i<100;i++) { Kwadrat k(liczby[i]); wektor_kwadratow.Dodaj(k); } cout << "Pole kwadratu o boku " << liczby[5] << " wynosi " << wektor_kwadratow[5].Pole() << endl;
Zadania dodatkowe
Dodaj do klasy Wektor:
Dodaj pozwalającą dodać element na określonej pozycji.Usun usuwającą element z wybranej pozycji.