Szablon klasy
Z Wikipedii
Zajrzyj na stronę dyskusji, by dowiedzieć się czego brakuje i – jeśli jesteś w stanie – uzupełnij braki.
Szablon klasy, szablon klas lub klasa szablonowa to w języku programowania C++ jeden z dwóch rodzajów szablonów dzięki któremu możliwe jest automatyczne generowanie nowych klas.
Spis treści |
[edytuj] Ogólny przykład
template< class Typ > // definicja szablonu klasy class MojaKlasa { public: MojaKlasa( Typ wartoscPoczatkowa ) { zawartosc = wartoscPoczatkowa; } Typ funkcja(); Typ zawartosc; int zwyklySkladnik; // zwykly skladnik zawsze typu int }; template< class Typ > Typ MojaKlasa<Typ>::funkcja(){ Typ zmienna; return zmienna; } int main() { MojaKlasa< int > a( 3 ); a.zawartosc = 5; MojaKlasa< float > b( 5.6 ); b.zawartosc = 12.345; return 0; }
- Powyżej znajduje się definicja szablonu klasy, gdzie parametrem formalnym jest słowo
Typ
. Jest ono używane zarówno jako określenie typu parametru formalnego konstruktora jak i typu składnika klasyzawartosc
. W funkcjiint main()
znajduje się deklaracja zmienneja
typuMojaKlasa< int >
, dzięki czemu zostanie wygenerowana klasa korzystając z szablonu gdzie we wszystkich miejscach słowoTyp
zostanie zastąpione słowemint
. Następnie znajduje się podobna sytuacja tyle że parametrem aktualnym jest typfloat
.
[edytuj] Klasa specjalizowana
[edytuj] Zawieranie obiektów składowych
[edytuj] Dziedziczenie
[edytuj] Właściwości
- W przeciwieństwie do szablonów funkcji, w szablonach klasy zawsze należy określić parametr aktualny szablonu, ponieważ kompilator nie posiada żadnych informacji o ewentualnych parametrach aktualnych szablonu.