68957

Перевантаження шаблонної функції та їх специфікацій

Лекция

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

Перевантаження шаблонної функції Використання стандартних параметрів шаблонної функції Обмеження на узагальнені функції Перевантаження шаблонної функції Для того, щоб перенавантажувати специфікацію узагальненої функції, досить створити ще одну версію шаблону, що відрізняється від останніх...

Украинкский

2014-09-28

34 KB

2 чел.

Лекція № 19

Тема: Перевантаження шаблонної функції

План

  1.  Перевантаження шаблонної функції
  2.  Використання стандартних параметрів шаблонної функції
  3.  Обмеження на узагальнені функції

Перевантаження шаблонної функції

Для того, щоб перенавантажувати специфікацію узагальненої функції, досить створити ще одну версію шаблону, що відрізняється від останніх своїм списком параметрів.

// Перевантаження шаблонної функції.

#include <iostream>

using namespace std;

// Перша версія шаблонної функції f().

template <class X> void f(X а){

cout « "Усередині функції f(X а)\n";

}

// Друга версія шаблонної функції f().

template <class X, class Y> void f(X а, Y b){

cout << "Усередині функції f(X а, Y b)\n";

}

int main() {

f(10); // Виклик функції f(X).

f(10, 20); // Виклик функції f(X, Y).

return  0;

}

Тут шаблон функції f () переобтяжений для одного і двох параметрів.

Використання стандартних параметрів шаблонних функцій

При визначенні шаблонної функції можна змішувати стандартні і узагальнені параметри. В цьому випадку стандартні параметри нічим не відрізняються від параметрів будь-яких інших функцій. Розглянемо приклад.

// Застосування стандартних параметрів в шаблонній функції.

#include <iostream>

using namespace std;

const int TABWIDTH = 8;

// Виводить на екран дані у позиції tab.

template<class X> void tabOut(X data, int, tab){

for(; tab; tab--)

for(int i=0; i<TABWIDTH; i++) cout « '  ' ;

cout « data « "\n";

}

int main() {

tabOut("Перевірка", 0);

tabOut(100,   1);

tabOutCX',   2);

tabOut(10/3, 3);

return 0;

}

Програма виводить на екран наступні повідомлення.

Перевірка

100

X

3

У цій програмі функція tabOut () виводить на екран свій перший аргумент, позиція якого визначається другим параметром tab. Оскільки перший аргумент має узагальнений тип, функція tabout () може виводити на екран дані будь-якого типу. Параметр tab є стандартним і передається за значенням. Змішення узагальнених і стандартних параметрів не викликає жодних проблем і може виявитися корисним.

Обмеження на узагальнені функції

Узагальнені функції нагадують переобтяжені, але на них накладаються ще жорсткіші обмеження. При перевантаженні усередині тіла кожної функції можна виконувати різні операції. В той же час узагальнена функція повинна виконувати одну і ту ж універсальну операцію для всіх версій, розрізнятися можуть лише типи даних. Розглянемо переобтяжену функцію на наступному прикладі. Ці функції не можна замінювати узагальненими, оскільки вони мають різне призначення.

 

#include <iostream>

#include <cmath>

using namespace std;

void myfunc(int i){

cout « "Значення = " « i « "\n";

}

void myfunc(double d){

double intpart;

double fracpart;

fracpart = modf(d &intpart);

cout << "Дробова частина = " « fracpart;

cout « "\n";

cout « "Ціла частина = " << intpart;

}

int main() {

myfunc(1);

myfunc(12.2);

return 0;

}


 

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

46177. PR - как теория коммуникативного воздействия. PR и другие науки 45 KB
  Для профессиональной практики в сфере связей с общественностью необходимы знания по психологии искусству коммуникации социальной психологии экономики основам менеджмента этики политологии социологии; а также опыт в анализе социальных проблем связям со средствами информации публикацией материалов создания рекламы кинотелематериалов видеосюжетов изучении общественного мнения подготовки презентаций докладов выступлений организации специальных событий. Специалист по PR получает базовую подготовку: в области планирования в...
46178. Глоссарий терминов и понятий института маркетинговых исследований в PR-коммуникации 113.5 KB
  Бюджет маркетинга финансовый план маркетинга система показателей раздел плана маркетинга предприятия в котором в детализированной форме по элементам комплекса маркетинга или по мероприятиям маркетинга приведены величины затрат доходов и прибыли от для осуществления маркетинговой деятельности фирмы. Планирование бюджета маркетинга может основываться на целевой прибыли или исходя из оптимизации прибыли. Основные составляющие затрат на маркетинг: управленческие расходы заработная плата персонала службы маркетинга амортизационные...
46179. Литогенез 211 KB
  Понятие осадочных горных пород.генез совокупность природных процессов образования и последующих изменений осадочных горных пород. Вальтером который выделил в процессе образования осадочных пород 5 основных фаз: выветривание горных пород денудация включая перенос исходного материала осадков отложение диагенез и метаморфизм. В цикле литогенеза различают следующие стадии: 1 образование и мобилизация исходного вещества осадков в процессе физического и химического разрушения материнских пород и его перенос к месту захоронения ...
46180. Структура научно-исследовательской работы. Требования к введению, реферату, основной части и заключению 64 KB
  Структура научно-исследовательской работы. Приложение задачи Введение Данная контрольная работа посвящена теме Структура научно-исследовательской работы. Целью написания данной работы является изучение структурных элементов научно-исследовательской работы.
46181. Анализ отчета о прибылях и убытках ОАО «Заря» 88 KB
  Как видно из таблицы 17, за отчетный период убыток от продаж увеличился на 427 тыс. руб., что является отрицательным моментом в деятельности предприятия. Что касается процентов к уплате, то их величина уменьшилась на 770 тыс. руб
46182. Ветеринарно-санитарная экспертиза продуктов животноводства и гигиены сельскохозяйственных животных 356 KB
  Вынужденный убой животных в вашем хозяйствеместо и способ убоя причины и пути реализации мяса сравните с действующими правилами и сделайте соответствующие выводы. Ветеринарносанитарная экспертиза продуктов убоя животных при отравлении. Вынужденный убой животных в вашем хозяйстве место и способ убоя причины и пути реализации мяса сравните с действующими правилами и сделайте соответствующие выводы.
46183. Гимнастика женщин во второй половине беременности. Лечебная физкультура при язвенной болезни. Упражнения при остеохондрозе 70 KB
  Исходное положение: основная стойка руки на поясе. Исходное положение: основная стойка руки на поясе. Исходное положение: основная стойка руки на поясе. Исходное положение: стоя ноги на ширине плеч руки у груди согнуты в локтях.
46184. Социальная педагогика как наука и общественная практика 62 KB
  Вывод: Закономерности развития социальной педагогики как науки лежат в сфере гуманитарных и социальных наук а также в реальной практике общественной и культурной жизни что и можно назвать истоками развития. Нужно отметить что социальная педагогика возникает в недрах экономиче ской культурной идеологической сфер жизни. Вывод: Источниками дальнейшего развития социальной педагогики можно назвать определённые сферы практической жизни и области знаний. В практике социальной жизни т.
46185. Автоматизация холодильных компрессорных станций 222.5 KB
  По уровню автоматизации компрессорные холодильные установки занимает одно из ведущих мест среди других отраслей промышленности. Холодильные установки характеризуются непрерывностью протекающих в них процессов. При этом выработка холода в любой момент времени должна соответствовать потреблению (нагрузке).