Очевидно, что некоторые функции должны «уметь» работать с параметрами любых типов. Например, функция, сортирующая массив, должна «уметь» сортировать массив любого типа. Для решения этой проблемы в С++ можно применить перегрузку функций. Однако на практике этот механизм — не совсем то, что требуется. В самом деле, если мы попробуем написать полный набор перегруженных функций swap () для обмена двух значений элементарных типов, то потребуется реализовать 3 варианта для символов (обычных и широких), 6 вариантов для различных целых и 3 варианта для дробных. Итого — 12 вариантов. Тем не менее для каждого реализованного класса функцию обмена придется писать заново. И все эти функции, даже если они реально не используются, должны присутствовать в программе, чтобы программист не задумывался о типах обмениваемых объектов. Функции-шаблоны позволяют сократить эту утомительную рутинную работу — достаточно написать один шаблон функции и вызывать его потом с нужными типами аргументов. В работающую программу попадут только те варианты функций, которые реально были вызваны для выполнения. Таким образом, шаблоны функций не только сокращают исходный текст, но и уменьшают объем выполняемого файла.
В предыдущей главе мы уже столкнулись с функциями-шаблонами: любой метод класса может быть сделан шаблонным (см. листинг 11.10), и дружественная функция класса может быть реализована как шаблонная (см. листинги 11.14 и 11.15). Здесь мы рассмотрим подробности и выясним детали использования функций-шаблонов.
Опубликовал Kest
December 22 2013 13:21:26 ·
1 Комментариев ·
3821 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Леонид December 24 2013 16:24:25
Полностью согласен с автором Kest по поводу шаблонов функций в программах. Эти шаблоны действительно гораздо более сильно облегчат работу как самого программиста, так и саму программу, в плане написания кода и массива итогового объема конечной формы запрограммированного интерфейса пользователя. Что не может не привести к облегчению загрузки самой программы, а также экономию ресурсов вычислительной техники.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.