Przejdź do treści głównej
INF.04Pytanie #655 z 856typy-generyczne-i-kolekcje

Jaki jest główny cel i korzyść z zastosowania szablonu funkcji (template), jak w powyższym kodzie C++?

Opcje odpowiedzi:
A
Służy do zdefiniowania funkcji, która może być nadpisana w klasach pochodnych (funkcja wirtualna).
B
Gwarantuje, że funkcja zostanie wykonana w całości w czasie kompilacji, a nie w czasie działania programu.
C
Umożliwia napisanie jednej, generycznej funkcji, która może operować na różnych typach danych (np. int, double), co eliminuje potrzebę powielania kodu.
Prawidłowa
D
Automatycznie konwertuje wszystkie argumenty do typu double przed wykonaniem operacji.
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C

C. Umożliwia napisanie jednej, generycznej funkcji... – Szablony są kluczowym mechanizmem programowania generycznego w C++. Pozwalają one na stworzenie jednej definicji funkcji (lub klasy), która może pracować z wieloma różnymi typami danych. Kompilator automatycznie generuje odpowiednie wersje funkcji dla każdego typu użytego w programie (w tym przypadku dla int i double), co zapobiega duplikacji kodu i zwiększa jego elastyczność.

Dlaczego inne odpowiedzi są nieprawidłowe:

  • A. – Do nadpisywania funkcji w klasach pochodnych służą funkcje wirtualne (virtual), co jest mechanizmem polimorfizmu dynamicznego, a nie programowania generycznego.

  • B. – Do zagwarantowania wykonania w czasie kompilacji służy słowo kluczowe constexpr, a nie template.

  • D. – Szablon nie konwertuje typów w ten sposób. Wręcz przeciwnie, typ T jest dedukowany na podstawie argumentów, a operacje są wykonywane na oryginalnych typach (int dla findMax(10, 20) i double dla findMax(15.5, 12.3)).

Chcesz poćwiczyć całą kwalifikację INF.04?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Typy generyczne i kolekcje”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 6 pytań z tego działu.