Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Szablon funkcji (function template) to model funkcji, który można wykorzystać

jako wzorzec (pattern) do tworzenia innych funkcji o tej samej funkcjonalności


dla różnych typów danych.
Idea konstrukcji szablonów polega na tym, aby na etapie tworzenia szablonów
nie określać typu parametrów formalnych ani typu zwracanego. Szablony
operują na danych typu uogólnionego (generic).
Szablony najczęściej stosujemy, gdy ten sam kod źródłowy ma być powielony
dla kilku różnych typów.
Przykładowy szablon funkcji:
template<typename T>
T nazwa_funkcji(T a, T b)
{
// ciało funkcji
}
Definicję szablonu funkcji rozpoczyna słowo kluczowe template, po
nim występuje ostry nawias < >. Wewnątrz nawiasu umieszczamy parametry
formalne tego szablonu. Lista ta nie może być pusta. Wpisujemy słowo
typename (lub class) a za nim symboliczną nazwę parametru T. Gdy
parametrów jest więcej, wówczas umieszczamy je po przecinku, czyli znowu
typename i nazwa parametru. W następnej linijce zaczyna się treść szablonu -
definicja funkcji. Parametr szablonu powinien, choć nie musi wystąpić w linijce
deklaracji funkcji jako jeden z argumentów lub wartość zwracana. Z szablonu
można również korzystać w ciele funkcji np. do tworzenia zmiennych
pomocniczych.
Jeżeli chcemy wywołać taką funkcję szablonową, nie musimy wcześniej
deklarować kompilatorowi chęci skorzystania z niej. Funkcje szablonowe nie są
kompilowane w sposób bezpośredni. Kompilator trafiając na wywołanie funkcji
szablonowej po prostu sobie odpowiednią funkcję wyprodukuje na podstawie
szablonu. Jeżeli drugi raz wywołujemy funkcję z takimi samymi typami
parametrów, wówczas kompilator drugi raz nie produkuje funkcji tylko ją
wywołuje.
Wywołanie funkcji szablonowej:
nazwa_funkcji<typ_zmiennej>(par1, par2);

You might also like