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