20519

Шаблони функцій (передача типу в функцію у вигляді параметру). Перевизначення шаблонів функцій. Передача у шаблони додаткових аргументів

Доклад

Информатика, кибернетика и программирование

Шаблони механізм C який дозволяє створювати узагальнені функції і класи які працюють з типами даних які передаються в параметрі. Можна наприклад створити функцію яка сортує масив цілих чисел а можна створити шаблон функції який буде сортувати масиви будьяких даних над якими задані операції порівняння і присвоєння. Шаблон функції виглядає так: template class Ідентифікатор_типу Тип_результату Назва_функціїСписок_параметрів { Тіло функції } Параметр Ідентифікатор_типу задає тип з яким працює функція. Всюди в тілі і заголовку...

Украинкский

2013-07-25

27.5 KB

0 чел.

Шаблони функцій (передача типу в функцію у вигляді параметру). Перевизначення шаблонів функцій. Передача у шаблони додаткових аргументів.

Шаблони - механізм C++, який дозволяє створювати узагальнені функції і класи, які працюють з типами даних які передаються в параметрі. Можна наприклад створити функцію яка сортує масив цілих чисел, а можна створити шаблон функції, який буде сортувати масиви будь-яких даних, над якими задані операції порівняння і присвоєння. Таким чином одну і ту ж функцію сортування можна застосовувати для масивів різних даних, не створюючи окрему функцію для кожного окремого типу.

Шаблон функції виглядає так:

template <class Ідентифікатор_типу> Тип_результату Назва_функції(Список_параметрів)

{

   // Тіло функції

}

Параметр "Ідентифікатор_типу" задає тип з яким працює функція. Всюди в тілі і заголовку функції компілятор замість цього ідентифікатора підставить фактичний тип, який передається. Наприклад функція перестановки двох змінних:

template <class Type> void swap(Type &a, Type &b)

{

     Type tmp=a;a=b;b=tmp;

}

За допомогою шаблонів можна дублювати  та розмножувати текст програми. Програмуючи на С + +, ви могли б скористатися засобами перевизначення і дати обом функцій одне і теж ім'я. Перевизначення робить текст програми більш наочним, але не позбавляє нас від необхідності повторювати один і той же алгоритм в декількох місцях.

При виклику шаблону функції типи і значення його аргументів визначаються шляхом дослідження типів фактичних аргументів функції. Цей процес називається висновком аргументів шаблону.
Параметром функції в шаблоні min () є посилання на масив елементів типу Type

template <class Type, int size>

  Type min( Type (&r_array)[size] ) { /* ... */ }


 

А также другие работы, которые могут Вас заинтересовать

994. Математические методы и исследование операций в экономике 662.91 KB
  Диагностика функционирования рыночных механизмов на предприятии. Жизненный цикл конкурентного преимущества фирмы. Внешние сигналы о возможных изменениях состояния. Сканирование внешней и внутренней среды фирмы — условие обнаружения слабых сигналов о надвигающемся кризисе.
995. Разработка технологического процесса обработки щита подшипникового 275.5 KB
  Описание конструкции и служебного назначения детали. Выбор вида и обоснование метода получения заготовки. Определение размеров, массы и стоимости детали. Проектирование технологического маршрута обработки и технологического процесса. Выбор оборудования, приспособлений, мерительного инструмента.
996. Метеонавигационный радиолокатор Контур-10СВ 556 KB
  Метеонавигационный радиолокатор Контур-10СВ предназначен для использования на борту самолетов различного класса в составе комплекса бортового радиоэлектронного оборудования (БРЭО). Частота излучения МНРЛ от 9,3 до 9,5 ГГц.
997. Система социальной защиты детства в Республике Башкортостан 427 KB
  Понятие, значение и методы государственного управления социальной защитой детства. Анализ состояния социальной защиты детства в Республике Башкортостан. Правовые аспекты государственного управления социальной защитой детства в Республике Башкортостан. Возможность применения опыта США по социальной защите детства в Российской Федерации. Применение информационных технологий в системе государственного управления социальной защитой детства в Республике Башкортостан.
998. Создание локальной вычислительной сети небольшого городка 454.5 KB
  Разделение данных предоставляет возможность доступа и управления базами данных с периферийных рабочих мест. Многопользовательские свойства системы содействуют одновременному использованию централизованных прикладных программных средств. Технологии беспроводных сетей (радиотехнологии). Выбор кабельной системы.
999. Инфляция и антиинфляционная политика 433 KB
  Определение и значение инфляции, ее виды и методы расчета. Основные направления антиинфляционной политики РБ. Кейнсианская теория инфляции. Сущность антиинфляционной политики и ее инструменты. Основные направления антиинфляционной политики Республики Беларусь.
1000. Разработка передатчик GSM900 582.5 KB
  Подключение сигнального процессора. Смеситель ADL 5350. Фильтр B 3850. Усилитель мощности RF 2173. Выбор синтезатора. Диапазон частот передатчика 876-915 МГц (канал вниз). Для передачи низкочастотного полезного сигнала необходимо использовать высокостабильный опорный кварцевый генератор DS4026.
1001. Измерение низких сопротивлений материалов 184 KB
  Определение удельного сопротивления металлов и других низкоомных материалов с помощью измерительного усилителя. Концентрация свободных электронов в металле при однократной ионизации. отношение удельной теплопроводности к удельной проводимости металла.
1002. Составление калькуляций и расчёта изменения себестоимости конкретных видов продукции 325.5 KB
  Формирование и анализ фактической себестоимости производства конкретного вида продукции. Разработка организационно-технических мероприятий по снижению себестоимости конкретного вида продукции. Определение капитальных вложений, необходимых для проведения внедрения АСУ ТП, и расчёт амортизационных отчислений. Расчет затрат на материальные, топливные и энергетические ресурсы.