ВУЗ:
Составители:
Рубрика:
60
Шаблон класса
Шаблон класса (иначе параметризованный класс) используется для
построения родового класса. Создавая родовой класс, вы создаете целое
семейство родственных классов, которые можно применять к любому типу
данных. Таким образом, тип данных, которым оперирует класс, указывает-
ся в качестве параметра при создании объекта, принадлежащего к этому
классу. Подобно тому, как класс определяет правила построения и формат
отдельных объектов, шаблон класса определяет способ построения от-
дельных классов. В определении класса, входящего в шаблон, имя класса
является не именем отдельного класса, а параметризованным именем се-
мейства классов.
Общая форма объявления параметризованного класса:
template <class тип_данных> class имя_класса { . . . };
Основные свойства шаблонов классов
*Компонентные функции параметризованного класса автоматически
являются параметризованными. Их не обязательно объявлять как парамет-
ризованные с помощью template.
*Дружественные функции, которые описываются в параметризован-
ном классе, не являются автоматически параметризованными функциями,
т.е. по умолчанию такие функции являются дружественными для всех
классов, которые организуются по данному шаблону.
*Если friend-функция содержит в своем описании параметр типа па-
раметризованного класса, то для каждого созданного по данному шаблону
класса имеется собственная friend-функция.
*В рамках параметризованного класса нельзя определить friend-
шаблоны (дружественные параметризованные классы).
*С одной стороны, шаблоны могут быть производными (наследо-
ваться) как от шаблонов, так и от обычных классов, с другой стороны, они
могут использоваться в качестве базовых для других шаблонов или клас-
сов.
*Шаблоны функций, которые являются членами классов, нельзя
описывать как virtual.
*Локальные классы не могут содержать шаблоны в качестве своих
элементов.
Компонентные функции параметризованных классов
Реализация компонентной функции шаблона класса, которая нахо-
дится вне определения шаблона класса, должна включать дополнительно
следующие два элемента:
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »
