ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
графических объектов их классы наследуются от общего родителя,
который содержит объявления всех виртуальных методов, определяющих
операции с фигурами. Таким образом, создается класс «фигура вообще»,
который определяет некоторое абстрактное понятие с абстрактным
поведением. Такие классы называют абстрактными. Поскольку поведение
этого класса определить невозможно, виртуальные функции,
определяющие операции с фигурами, только объявляются в классе, но не
определяются. Такие методы называются чисто виртуальными
методами. При объявлении чисто виртуального метода следует сразу
после его прототипа указать "=0":
virtual void f() = 0;
Таким образом, класс является абстрактным, если в нем объявлен
хотя бы один чисто виртуальный метод. Абстрактный класс не может
использоваться для создания объектов, поскольку не полностью
определена его реализация. Его можно применять только в качестве
базового класса, определив в его потомках чисто виртуальные функции.
Если в производном классе не будет определена хотя бы одна чисто
виртуальная функция базового класса, то он также будет абстрактным. В
программах можно создавать указатели и ссылки на абстрактный класс
для хранения адресов объектов классов-потомков. Применительно к
нашему примеру, рисунок можно хранить как список указателей на
базовый класс «фигура вообще», которые могут хранить адреса объектов
различных типов (прямоугольник, эллипс, надпись и т.д.).
2.2.8. Шаблоны классов (параметризация классов)
Напомним, что существует возможность определять описание
функций для обобщенного типа данных. Это описание называется
шаблоном функции. Аналогично можно описывать классы,
использующие обобщенные типы данных. Соответственно, в этом случае
мы говорим о шаблонах классов.
Шаблон класса определяется следующим образом:
template <список_обобщенных_типов>
class имя_шаблона_класса
{
. . .
};
114
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
графических объектов их классы наследуются от общего родителя,
который содержит объявления всех виртуальных методов, определяющих
операции с фигурами. Таким образом, создается класс «фигура вообще»,
который определяет некоторое абстрактное понятие с абстрактным
поведением. Такие классы называют абстрактными. Поскольку поведение
этого класса определить невозможно, виртуальные функции,
определяющие операции с фигурами, только объявляются в классе, но не
определяются. Такие методы называются чисто виртуальными
методами. При объявлении чисто виртуального метода следует сразу
после его прототипа указать "=0":
virtual void f() = 0;
Таким образом, класс является абстрактным, если в нем объявлен
хотя бы один чисто виртуальный метод. Абстрактный класс не может
использоваться для создания объектов, поскольку не полностью
определена его реализация. Его можно применять только в качестве
базового класса, определив в его потомках чисто виртуальные функции.
Если в производном классе не будет определена хотя бы одна чисто
виртуальная функция базового класса, то он также будет абстрактным. В
программах можно создавать указатели и ссылки на абстрактный класс
для хранения адресов объектов классов-потомков. Применительно к
нашему примеру, рисунок можно хранить как список указателей на
базовый класс «фигура вообще», которые могут хранить адреса объектов
различных типов (прямоугольник, эллипс, надпись и т.д.).
2.2.8. Шаблоны классов (параметризация классов)
Напомним, что существует возможность определять описание
функций для обобщенного типа данных. Это описание называется
шаблоном функции. Аналогично можно описывать классы,
использующие обобщенные типы данных. Соответственно, в этом случае
мы говорим о шаблонах классов.
Шаблон класса определяется следующим образом:
template <список_обобщенных_типов>
class имя_шаблона_класса
{
. . .
};
114
Страницы
- « первая
- ‹ предыдущая
- …
- 112
- 113
- 114
- 115
- 116
- …
- следующая ›
- последняя »
