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


 

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

17654. Дифракція Фраунгофера на двох щілинах 156.34 KB
  Дифракція Фраунгофера на двох щілинах У випадку 2 щілин на відміну від випадку 1 щілини буде спостерігатись ще й інтерференційна картина. Результуюча картина буде визначатися шляхом додавання хвиль що йдуть з обох щілин. Очевидно що min будуть на тих самих місцях бо т
17655. Дифракція Фраунгофера на щілині 37.03 KB
  Дифракція Фраунгофера на щілині. Тип дифракції при якому розглядається дифракційна картина утворена паралельними променями отримав назву дифракції Фраунгофера. Паралельні промені отримуємо за допомогою системи лінз. Розбиваємо площину щілини на ряд смужок. Вони є д
17656. Закон Брюстера. Зміна фази відбитої хвилі 42.86 KB
  Закон Брюстера. Зміна фази відбитої хвилі. Формули Френеля: 1 і 2 . 3 і 4 Із формули 1 для відбитої хвилі для pкомпоненти видно що коли то . Тобто pкомпонента для відбитої хвилі зникає. Використовуючи формулу Де називають кутом Брюстера.
17657. Закони відбиття та заломлення світла 35.1 KB
  Закони відбиття та заломлення світла. Коли промінь досягає плоскої границі розподілу двох середовищ він частково проходить в друге середовище заломлюється частково повертається назад відбивається. Закон відбиттся стверджує що падаючий і відбитий промені лежать в ...
17658. Закони заломлення для металів. Неоднорідна хвиля 137.46 KB
  Закони заломлення для металів. Неоднорідна хвиля. Конспект: для золота Для нормальной составляющей: ...
17659. Зв’язок між ступенем когерентності і параметром видності 44.88 KB
  Зв’язок між ступенем когерентності і параметром видності. Поняття когерентності пов’язане зі здатністю хвиль інтерферувати. Розглянемо ступінь когерентності на прикладі часової когерентності. Нехай в т. Р одночасно в момент часу t приходять 2 хвилі однакової частоти в...
17660. Зірковий інтерферометр Майкельсона 37.3 KB
  1 Зірковий інтерферометр Майкельсона Запропонував Фізо. Для визначення кутових розмірів об’єкту зірки. Розміщені навпроти щілин дзеркала нерухомі а дзеркала можна одночасно розсувати. Очевидно що видність смуг залежить від ступеня когерентно
17661. Інтерференція в тонких шарах інтерференційні дзеркала та просвітлююча оптика 28.84 KB
  Інтерференція в тонких шарах: інтерференційні дзеркала та просвітлююча оптика. При освітленні тонкої плівки відбувається накладання хвиль від джерела S які відбилися від передньої і задньої поверхонь плівки. Якщо світло біле то інтерференції смуги будуть кольоро...
17662. Інтерференція поляризованих променів 63.33 KB
  Інтерференція поляризованих променів. Як відомо для інтерференції необхідною умовою є когерентність променів. А також із відомої формули для інтерференційного члена що враховує взаємодію пучків: видно що результат інтерференції лінійно поляризованих променів зале