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] ) { /* ... */ }


 

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

81466. Свойства и распространение гликогена как резервного полисахарида. Биосинтез гликогена. Мобилизация гликогена 173.81 KB
  Биосинтез гликогена. Мобилизация гликогена. Таким образом в молекуле гликогена имеется только одна свободная аномерная ОНгруппа и следовательно только один восстанавливающий редуцирующий конец.
81467. Особенности обмена глюкозы в разных органах и клетках: эритроциты, мозг, мышцы, жировая ткань, печень 110.65 KB
  Метаболизм глюкозы в эритроцитах. В эритроцитах катаболизм глюкозы обеспечивает сохранение структуры и функции гемоглобина целостность мембран и образование энергии для работы ионных насосов. Около 90 поступающей глюкозы используется в анаэробном гликолизе а остальные 10 в пентозофосфатном пути.
81468. Представление о строении и функциях углеводной части гликолипидов и гликопротеинов. Сиаловые кислоты 110.57 KB
  Сиаловые кислоты Гликопротеины – сложные белки содержащие помимо простого белка или пептида группу гетероолигосахаридов. К полипептидуприсоединяются гетероолигосахаридные цепи содержащие от 2 до 10 реже 15 мономерных остатков гексоз галактоза и манноза режеглюкоза пентоз ксилоза арабиноза и конечный углевод чаще всего представленный Nацетилгалактозамином Lфукозой или сиаловой кислотой; в отличие от протеогликанов гликопротеины не содержат уроновых кислот и серной кислоты. Сиа́ловые кисло́ты ациальные производные...
81469. Наследственные нарушения обмена моносахаридов и дисахаридов: галактоземия, непереносимость фруктозы и дисахаридов. Гликогенозы и агликогенозы 139.56 KB
  Гликогенозы и агликогенозы Нарушения метаболизма фруктозы Неактивный фермент Блокируемая реакция Локализация фермента Клинические проявления и лабораторные данные Фруктокиназа Фруктоза АТФ → Фруктозе1фосфат АДФ Печень Почки Энтероциты Фруктоземия фруктозурия Фруктозе1фосфатальдолаза Фруктозе1фосфат → Дигидроксиацетон3 фосфат Глицеральдегид Печень Рвота боли в животе диарея гипогликемия Гипофосфатемия фруктоземия гиперурикемия хроническая недостаточность функций печени почек. Наследственная непереносимость...
81470. Важнейшие липиды тканей человека. Резервные липиды (жиры) и липиды мембран (сложные липиды). Жирные кислоты липидов тканей человека 113.78 KB
  Жирные кислоты липидов тканей человека. Жирные кислоты структурные компоненты различных липидов. В составе триацилглицеролов жирные кислоты выполняют функцию депонирования энергии так как их радикалы содержат богатые энергией СН2группы. В составе фосфолипидов и сфинголипидов жирные кислоты образуют внутренний гидрофобный слой мембран определяя его свойства.
81471. Незаменимые факторы питания липидной природы. Эссенциальные жирные кислоты: ω-3- и ω-6-кислоты как предшественники синтеза эйкозаноидов 125.89 KB
  Эссенциальные жирные кислоты: ω3 и ω6кислоты как предшественники синтеза эйкозаноидов. В эту группу входит комплекс полиненасыщенных жирных кислот которые принимают значительное участие в биологических процессах: линолевая кислота омега6 линоленовая кислота омега3 арахидоновая кислота омега6 эйкозапентаеновая кислота омега3 докозагексаеновая кислота омега3 Полиненасыщенные жирные кислоты препятствуют развитию атеросклероза и снижают уровень триглицеридов липопротеидов низкой плотности в крови холестерина и его...
81472. Биосинтез жирных кислот, регуляция метаболизма жирных кислот 192.83 KB
  Источником углерода для синтеза жирных кислот служит ацетилКоА образующийся при распаде глюкозы в абсорбтивном периоде. Образование ацетилКоА и его транспорт в цитозоль. Активный гликолиз и последующее окислительное декарбоксилирование пирувата способствуют увеличению концентрации ацетилКоА в матриксе митохондрий. Так как синтез жирных кислот происходит в цитозоле клеток то ацетилКоА должен быть транспортирован через внутреннюю мембрану митохондрий в цитозоль.
81473. Химизм реакций β-окисления жирных кислот, энергетический итог 170.76 KB
  βОкисление специфический путь катаболизма жирных кислот при котором от карбоксильного конца жирной кислоты последовательно отделяется по 2 атома углерода в виде ацетилКоА. Реакции βокисления и последующего окисления ацетилКоА в ЦТК служат одним из основных источников энергии для синтеза АТФ по механизму окислительного фосфорилирования. связаны макроэргической связью с коферментом А: RCOOH HSKo АТФ → RCO КоА АМФ PPi. Реакцию катализирует фермент ацилКоА синтетаза.
81474. Биосинтез и использование кетоновых тел в качестве источников энергии 127.33 KB
  В результате скорость образования ацетилКоА превышает способность ЦТК окислять его. АцетилКоА накапливается в митохондриях печени и используется для синтеза кетоновых тел. Синтез кетоновых тел начинается с взаимодействия двух молекул ацетилКоА которые под действием фермента тиолазы образуют ацетоацетилКоА. С ацетоацетилКоА взаимодействует третья молекула ацетилКоА образуя 3гидрокси3метилглутарилКоА ГМГКоА.