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