Модульні уроки (1/2)
Шаблони функцій
Шаблони дозволяють писати загальний код на C++. За допомогою шаблонів ми можемо визначати функції або класи, які працюють із параметрами загального типу, дозволяючи компілятору генерувати фактичний код для конкретних запитуваних типів.
Визначення шаблону функції
Щоб визначити шаблон функції, перед визначенням функції вказується ключове слово template, після якого йде список параметрів типу, укладених у кутові дужки <>. Зазвичай typename або class використовується для оголошення загального типу.
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
return a + b;
}Виклик функції та дедукція аргументів шаблону
Коли ми викликаємо функцію, ми можемо явно вказати тип у кутових дужках:
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);Однак компілятор C++ зазвичай може виводити тип автоматично з переданих вхідних параметрів (дедукція аргументів шаблону):
int res1 = add(5, 10); // The compiler deduces that T is intСпробуйте самі
Визначте шаблон функції під назвою myMax, який приймає два параметри загального типу T і повертає більший із двох.
Показати підказку
Почніть із написання `template <typename T>`, а потім підпису `T myMax(T a, T b)`.
Рішення доступне після 3 спроб
Напишіть шаблон функції під назвою printPair, який приймає два параметри різних загальних типів T1 і T2 і друкує два аргументи, розділені пробілом, за допомогою std::cout.
Показати підказку
Оголошення шаблону має вказувати два параметри: `template <typename T1, typename T2>`.
Рішення доступне після 3 спроб