Dalej•LEKCJA 23 / 24

Szablony

Kurs C++ · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

Szablon pozwala tworzyć kod działający z różnymi typami.

Jak to działa?

template<typename T> wprowadza parametr typu. Kompilator przygotowuje odpowiednią wersję funkcji na podstawie użytych argumentów.

Przykład 1 — poznaj zapis

template<typename T>
T maxValue(T a, T b) {
    return a > b ? a : b;
}

// std::cout << maxValue(3, 7);

Szablon zadziała dla typów wspierających operator >.

Przeczytaj kod linijka po linijce

  1. T maxValue(T a, T b) {Definiujemy funkcję lub metodę, której można użyć później.
  2. return a > b ? a : b;Zwracamy wyliczoną wartość do miejsca wywołania funkcji.
Oczekiwany wynik / efektpo uruchomieniu przykładu
7 (po wywołaniu maxValue(3, 7))

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

template <typename T> T twice(T x) { return x + x; }
// main: std::cout << twice(4);
Wynik drugiego przykładupo uruchomieniu przykładu
8 (po wywołaniu w main)
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Przygotuj szablon minValue.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.