Шаблоны функций в языке С++
Шаблоны функций в языке С позволяют создать общее определение функции, применяемой для различных типов данных.
template <typename T> T Abs (T N) { return N < 0 ? -N : N; }
- Основные принципы и понятия при работе с шаблоном.
Теперь, после поверхностного знакомства - мы рассмотрим все особенности работы шаблонов:
- При определении шаблона используются два спецификатора: template и typename.
- На место параметра типа Т можно подставить любое корректное имя.
- В угловые скобки можно записывать больше одного параметра типа.
- Параметр функции - это значение, передаваемое в функцию при выполнении программы.
- Параметр типа - указывает тип аргумента, передаваемого в функцию, и обрабатывается только при компиляции.
- Процесс компиляции шаблона.
- Определение шаблона не вызывает генерацию кода компилятором самостоятельно. Последний создает код функции только в момент её вызова и генерирует при этом соответствующую версию функции.
- Следующий вызов с теми же типами данных параметров не спровоцирует генерацию дополнительной копии функции, а вызовет ее уже существующую копию.
- Компилятор создает новую версию функции, только если тип переданного параметра не совпадает ни с одним из предыдущих вызовов.
Переопределение шаблонов функций
- Каждая версия функции, генерируемая с помощью шаблона, содержит один и тот же фрагмент кода.
- Однако, для отдельных параметров типа можно обеспечить особую реализацию кода, т. е. определить обычную функцию с тем же именем, что и шаблон.
- Обычная функция переопределит шаблон. Если компилятор находит типы переданных параметров соответствующие спецификации обычной функции, то он вызовает ее, и не создает функцию по шаблону.

Friendhosting - Разумные цены на хостинг
VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!
friendhosting.net
Антидетект браузер Dolphin{anty} бесплатно до 10 профилей
Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!
skyeng.ru