Что такое template в C++? Для каких целей он используется? Как он используется? - Желательно бы пример использования.
Ответ
Шаблоны (template) в C++ являются отдельными синтаксическими конструкциями.
Шаблоны используются для обобщённого программирования. Вы пишете алгоритм, который работает с различными типами данных, требуя от них только некоторой небольшой функциональности, а компилятор при использовании этого шаблона с конкретным типом подставляет тип и фактически сам генерирует требуемый код на C++
Вот простейший пример использования шаблонов:
template
Мы написали код, который работает с любым типом данных, требуя от этого типа только наличия операции "меньше" (operator<). (На самом деле ещё конструктора копирования, но это уже детали.) Теперь мы можем использовать наш шаблон:
int x, y;
int z = min(x,y); // Автоматический вывод типа.
double a, b;
double c = min(a,b); // Автоматический вывод типа.
double d = min
std::vector::iterator i, j, k;
k = min(i,j);
Видно, что нам удалось использовать этот шаблон не только к обычным числовым типам, но и к сложным сущностям - итераторам.
В этом мощь обобщённого программирования - код, написанный один раз используется многократно. Но есть и недостаток - "разбухание" бинарного кода - для каждого типа параметра шаблона компилятор создаст свой бинарный код.
Комментариев нет:
Отправить комментарий