#24 – Шаблоны функций (template)
Видеоурок
Шаблоны функций, а также шаблоны классов в языке C++ это мощные технологии, что позволяют создавать шаблонные конструкции и далее при передачи данных передавать как значения, так и типы данных.
Для создания шаблонной функции необходимо использовать ключевое слово template, а также в угловых скобках необходимо указывать принимаемый тип данных. Можно принимать один или несколько типов данных.
Пример создания шаблонной функции:
template <typename Type1> // Указываем что это шаблон функции
// Принимаем параметр value и его тип данных мы получим
// также в качестве передаваемого параметра - Type1
void funct (Type1 *value) {
cout << value; // Просто выводим это значение
}// Здесь мы получаем сразу два типа данных
template <typename Type1, typename Type2>
void funct (Type1 *value, Type2 *newValue) {
// Мы можем использовать передаваемые типы в самой функции
Type1 someNew;
cout << newValue; // Просто выводим значение
}// Вызов функции с одним параметром
funct<double>(value);
// Вызов с несколькими параметрами
funct<char, double>(value, oneMoreValue);Исходный код
#include <iostream>
#include <string>
using namespace std;
template <typename T, typename T2>
void print_arr(T* arr, int len) {
for (T2 i = 0; i < len; i++)
cout << *(arr + i) << " ";
cout << endl;
}
int main() {
setlocale(LC_ALL, "RU");
int arr1[] = { 5, 6, 3, 2, 0, -4 };
print_arr<int, int>(arr1, 6);
float arr2[] = { 5.34f, 6.01f, 3.23f };
print_arr<float, int>(arr2, 3);
return 0;
}
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть