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;

}


 

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

45199. Порядок определения размера арендной платы, условий и сроков ее внесения за использование земельных участков, предоставляемых для строительства 30.5 KB
  Размер арендной платы за один квадратный метр земельного участка в год рассчитывается по формуле: А = Скад х Ки х Ка х Кс х Кв х Кпр где: Скад – среднее значение удельного показателя кадастровой стоимости земель в городском округе Самара; Ки – коэффициент инфляции рассчитываемый как произведение индексов-дефляторов инвестиций предусмотренных в рамках прогноза социально-экономического развития Самарской области Ка – коэффициент категории арендатора определяемый в соответствии с приложением № 1 к настоящему Порядку; Кс – коэффициент сроков...
45200. Определение и структура сметной стоимости строительства, строительно-монтажных работ и себестоимости строительно- монтажных работ (формулы Сстр, Ссмр, Сс, НР, СП) 25.5 KB
  Сметная стоимость строительно-монтажных работ Собор – сметная цена оборудования Спр – стоимость прочих затрат Сметная стоимость строительно-монтажных работ: Ссмр = Сс СП где: Сс – сметная себестоимость строительно-монтажных работ СП – сметная прибыль средства необходимые для покрытия отдельных расходов подрядных организаций на развитие производства соц.2001 ФОТ = От оплата труда рабочих Отм оплата труда машинистов Сметная себестоимость -работ: Сс = ПЗ НР где: ПЗ...
45201. Определение и структура прямых затрат 14.53 KB
  Стоимость материальных ресурсов франко-приобъектного склада отпускная цена транспортные расходы Оплата труда рабочих согласно ежемесячной статистике Учреждения статистики Стоимость эксплуатации машин: Эм = А Р Б Отм Э С Г П где: А – амортизационные отчисления на полное восстановление Р – затраты на ремонт и технич.оборудование Б – затраты на замену быстроизнашивающихся частей Отм – оплата труда машинистов Э – затраты на...
45202. Накладные расходы. Определение, виды, база начисления, назвать основные статьи НР 14.12 KB
  Определение Для определения норм накладных расходов в локальных сметных расчетах используются методические указания по определению величины НР в строительстве МДС 81332004 и письма мин. МДС 81332004 МДС 81332004 и ремонтно-строительных работ прил. МДС 81332004
45203. Описание архитектуры производственного предприятия в системе ПитерСофт: Управление процессами 1.3 MB
  Что же собой представляет архитектура предприятия? В самом общем виде под архитектурой предприятия (ЕА - Enterprise Architecture) понимается всестороннее и исчерпывающее описание (модель) всех его ключевых элементов и межэлементных отношений.
45205. Сметная прибыль. Определение, виды, база исчисления, состав затрат 16.01 KB
  В состав нормативов СП входят затраты: Отдельных федеральных регионов местные сборы Налог на прибыль Налог на имущество по ставкам установленным организацией местного самоуправления не выше 5 Расширение производства подрядовой организации Модернизация оборудования Реконструкция объектов основных фондов Материальная стимуляция работников Проведение мероприятий по охране и отдых несвязанных с участием работников производственных процессов Организация помощи учебным заведениям Виды сметной прибыли Общеотраслевой норматив...
45206. Локальные и объектные сметные расчеты 169.89 KB
  2004 методика по определению стоимости строительства строит. стоимости 1. Показатели единичной стоимости по конструктивным элементам Объектносметный расчет рекомендуется составлять в текущем уровне цен на объекты в целом путем суммирования ранних из локальных сметных расчетов с группировкой затрат по соответствующим графам сметной стоимости По стоимости: строительных работ монтажных работ стоимости оборудования мебели и инвентаря прочих затрат С целью определения полной стоимости объекта в конце объектной сметы рекомендуется...
45207. Методы определения стоимости строительства 15.32 KB
  Методы определения стоимости строительства При составлении смет и сметных расчетов могут применяться следующие методы определения стоимости: Базисно-индексный Ресурсный Метод на основе укрупненных сметных нормативов в том числе банка данных о стоимости ранее построенных или запроектированных объектованалогов Базисноиндексный метод Определение стоимости строительства предусматривает составление сметных расчетовсмет на различных тсадиях инвестиционного строительного процесса в базисном уровне цен с использованием единичных расценок...