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;

}


 

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

32084. Социальная психология административной и управленческой деятельности 96 KB
  Основная цель: разработка универсальных принципов управления пригодных ко всем типам организации. Было выявлено существование формальных и неформальных групп в организации и их влияние на поведение работников. потребности отказ от необходимости жесткой иерархии власти жесткие рамки не совместимы с природой человека; ответственность за решение проблем в организации лежит на менеджере; роль неформальных отношений. Главное квалификация уровень ее мотивации формы организации труда.
32085. Профессиональный стресс 55.5 KB
  Профессиональный стресс Литра: Пряжников Николай Сергеевич 1. Социально экономическая значимость изучения стресса Сама проблема профессионального стресса остро заявила о себе именно в ХХ столетии.дистреса: 1 человек встречаясь с какойто сложностью не может полноценно реализовать накопившуюся энергию вызванную физиологическим механизмом стресса и тогда эта энергия начинает разрушать самого человека.Классическая теория стресса Ганса Селье современное применение теории 1936г.
32086. Основные этапы в развитии социальной психологии 71.5 KB
  История формирования социальнопсихологических идей Основные этапы в развитии социальной психологии. Выделяют 3 этапа в истории зарубежной социальной психологии: 1 философский античность сер. Накопление социальнопсихологических знаний в сфере философии и зарождающейся в ее недрах психологии. История социальной психологии как научной дисциплины относительно молодая отрасль знания.
32087. Теоретические направления западной социальной психологии: социальный бихевиоризм и социальный психоанализ 43.5 KB
  Суть теорий: все действия человек совершает под воздействием внешнего стимула. Факторы влияющие на исходы взаимодействия: экзогенные внешние сходство дополняемость и внутренние эндогенные на основе прошлого опыта взаимодействия влияет величины исходов в прошлом чел решает взаимодействовать ли дальше. необихевиаристская ориентация сводит всю активность челка в основном к пассивному приспособлению к сущим усл. Психоанализ: Основу психической жизни человека составляют бессознательные влечения потребности и образы формирующиеся...
32088. Теоретические направления западной социальной психологии: когнитивизм и интеракционизм 52.5 KB
  Теоретические направления западной социальной психологии: когнитивизм и интеракционизм. соц. эксперименты о соц. Большое развитие соц.
32089. Основные методологические проблемы и специфика СП исследования 67 KB
  Виды: стандартизированное нестандартизированное включенное участвующее взаимодействие наблюдателя и группы и невключенное простое со стороны наблюдение. Проблема определения единиц наблюдения: Объектом наблюдения являются отдельные люди малые группы и большие социальные общности например толпа и социальные процессы происходящие в них например паника. Предметом наблюдения обычно служат вербальные и невербальные акты повеления индивида или группы в целом в определенной социальной ситуации. Референтометрия методический...
32090. Общение как обмен информацией 43 KB
  Андреева рассматривая проблему общения выделяет в ней 3 стороны перцептивную восприятие партнёров коммуникативную обмен информацией и интерактивную взаимодействие. Но передача инфо только формальная сторона общения всегда информация не только передается но и формируется уточняется развивается. Поэтому рассмотрения общения только с этой стороны недостаточно. У общающихся должно быть не только одинаковые лексические и синтаксические системы но и понимание ситуации общения это возможно лишь в случае включения коммуникации в...
32091. Общение как взаимодействие. Типы взаимодействий: кооперация, конкуренция, конфронтация 48.5 KB
  Исследование проблемы взаимодействия имеет в социальной психологии давнюю традицию. Такое понимание взаимод исключает отождествление коммуникации и взаимодействия а с другой точки зрения исключает их отрыв друг от друга они взаимосвязаны. При изучении структуры взаимодействия фиксируются его элементы и выявляются доминирующие факторы мотивации действий. Парсонс: В основе социальной деятельности лежат межличностные взаимодействия на них строится человеческая деятельность в ее широком проявлении она результат единичных действий.
32092. Общение как восприятие и понимание людьми друг друга 51 KB
  Специфика анализа перцептивых процессов в социальной психологии Процесс восприятия одним человеком другого обязательная составная часть общения и условно может быть назван перцептивной стороной общения. В ходе восприятия другого человека работают 3 процесса: эмоциональный оценка другого когнитивный познание другого выстраивание своей концепции поведения процессы могут происходить одновременно. На соц воспр влияют наши ожидания желания намерения прошлый опыт восприятия; 4. Механизмы межличностного восприятия: идентификация...