Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Парамизованые классы.

Читайте также:
  1. Дисциплина «история», 9 - 11 классы.
  2. Классы.
  3. Операция замыкания. Замкнутые классы.
  4. Тема 2. Основные участники социальных конфликтов в России в начале XX века. Структура российского общества в начале XX века. Социальные слои и группы. Сословия и классы.
  5. Чисто виртуальные функции и абстрактные классы.

Шаблон класса задает способ построения отдельных класов. Шаблоны класса vector:

template <class T> class vector {private:T* fitems; int fcount; public: vector(int);T& operator[](const int index);T&getitem(const int index){... return fitems[index];}; Префикс template <class T> указывает, что объявл шаблон с типовым парамом Т. Теперь посредством замены типового парама конкретным типом можно образовать конкретный класс, кот далее может использоваться для описания переменых, как и любой др тип даных: Класс, сгенерированый из шаблона явл совершено нормальным класом. Поэтому исп-ние шаблона не подразумевает каких-либо дополнительных механизмов (и связаных с ними расходов памяти и времени) на этапе выполнения проги по сравнению с тем, что использовалось бы, если бы необходимый конкретный класс был написан «вручную». С др стороны, исп-ние шаблонов не подразумевает обязательного уменьшения объема объектного кода. Компоненты шаблона объявл и описываются точно так же, как и компоненты обычного класса, т.е. либо внутри, либо вне класса. Компонентная функция шаблона класса явл шаблоном функции, парамизованом парамами шаблона класса. Ее внешнее описание осуществляется согласно следующему синтаксису: template <список-парамов-шаблона> тип-рез-та имя-шаблона-класса<список-парамов-шаблона>::описание-функции.Процес генерации объявления конкретного класса из шаблона класса - конкретизация шаблона (template instantiation). Класс, сгенерированый из шаблона (напр, класс, обозначаемый именем vector<int>), назется шаблоным класом (template class). Парамами шаблонов класов могут быть типовые парамы, обычные парамы и парамы-шаблоны. При конкретизации шаблона типы фактических парамов отождествляются с соответствующими (по порядку) типами из списка-парамов-шаблона и должны соответствовать им по кол-ву. У шаблона может быть несколько парамов. Парам шаблона может быть использован для описания следующих парамов. Парамы целого типа обычно исп-ются для задания размеров и границ. Простые контейнеры с ограничеными возможностями могут быть полезными, когда компактность кода и эфективность во время выполнения проги имеют первостепеное значение. Передача размера буфера в качестве аргумента шаблона позволяет его разработчику избежать использования лишней памяти. Арг-ты целого типа всегда должны быть константными выражениями. Нетиповый парам шаблона явл константой в теле шаблона, и потому попытка изменения его значения явл ошибкой.

 




Дата добавления: 2015-01-29; просмотров: 31 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав