Szablon funkcji w C++
Szablon funkcji, znany również jako funkcja szablonowa, to mechanizm w języku C++, który umożliwia automatyczne generowanie funkcji dla różnych typów danych.
Przykład deklaracji
template
T add (T par1, T par2) {
return par1 + par2;
}
int main() {
int a = 5;
int b = 8;
int c = add
float d = 3;
float e = 4;
float f = add
return 0;
}
W powyższym przykładzie, funkcja add
jest zadeklarowana jako szablon, co pozwala na jej użycie dla różnych typów danych. Kompilator generuje odpowiednie funkcje w zależności od dostarczonych typów.
Funkcja specjalizowana
Możliwe jest również jawne zdefiniowanie specjalizacji szablonu dla konkretnych typów. Taka deklaracja musi być umieszczona przed wywołaniem funkcji.
template
T function (T a, T b) {
return a + b;
}
void function (char c, char d) {
cout << "npodaj znak dla c: ";
cin >> c;
cout << "npodaj znak dla d: ";
cin >> d;
cout << "npodałeś znaki " << c << " i " << d << endl;
}int main() {
int a2 = 4, b2 = 5;
cout << function(a2, b2);
char c2, d2;
function(c2, d2);
}
Właściwości szablonów funkcji
- Parametry szablonu nie zawsze muszą być określane w wywołaniu funkcji. Kompilator może automatycznie dopasować typy, co pozwala na wywołanie funkcji jako
add(a, b)
zamiastadd
.(a, b) - Podmiana parametrów formalnych odbywa się tylko w kontekście ich użycia. Na przykład, parametr
T
nie zostanie podmieniony w nazwach zmiennych czy łańcuchach tekstowych.
Szablony funkcji w C++ są potężnym narzędziem, które zwiększa elastyczność i ponowne wykorzystanie kodu, co jest kluczowe w programowaniu obiektowym.