Читайте также:
|
|
Контейнеры - это специальным образом организованные объекты, используемые для хранения объектов других классов. Для реализации контейнеров разрабатываются специальные контейнерные классы. Контейнерный класс обычно включает набор методов, позволяющих выполнять некоторые операции, как с отдельным объектом, так и с группой объектов. В виде контейнеров, как правило, реализуются сложные структуры данных (различные виды списков, динамических массивов и т.п.). Разработчик наследует от класса-элемента класс, в который добавляются нужные ему информационные поля, и получает требуемую структуру. При необходимости он может наследовать класс и от контейнерного класса, добавляя к нему свои методы (рис.).
Контейнерный класс обычно включает методы создания, добавления и удаления элементов. Кроме того, он должен обеспечивать поэлементную обработку (например, поиск, сортировку). Все методы программируются через указатели на класс-элемент. Методы добавления и удаления элементов при выполнении операций обычно обращаются к специальным полям класса-элемента, используемым для создания структуры (например, для односвязного списка - к полю, хранящему адрес следующего элемента).
Методы, реализующие поэлементную обработку, должны работать с полями данных, определенными в классах-потомках класса-элемента.
Поэлементную обработку реализуемой структуры можно реализовать двумя способами.
Первый способ - универсальный - заключается в использовании итераторов.
Второй - в определении специального метода, который содержит в списке параметров адрес процедуры обработки.
Теоретически итератор должен обеспечивать возможность реализации циклических действий следующего вида:
<очередной элемент>:=<первый элемент>
Дата добавления: 2015-09-06; просмотров: 243 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Делегирование методов | | | Цикл-пока <очередной элемент> определен |