ВУЗ:
Составители:
Рубрика:
27
Иерархия объектов.
Иерархия классов есть иерархия по принципу наследования, т.е.
типа “это есть разновидность того”. Например, “рабочий есть разновид-
ность персоны”, “автомобиль” есть разновидность “транспортного
средства”. В отличие от этого иерархия объектов − это иерархия по
принципу вхождения, т.е. типа “это есть часть того”. Например, “ус-
тановка
− часть завода”, “двигатель” − часть “автомобиля”. Таким об-
разом, объекты нижнего уровня иерархии включаются в объекты
более высокого уровня, которые являются для них группой.
Итератор.
Итераторы позволяют выполнять некоторые действия для каждого
элемента определенного набора данных.
For all элементов набора { действия}
Такой цикл мог бы быть выполнен для всего
набора, например, что-
бы напечатать все элементы набора, или мог бы искать некоторый элемент,
который удовлетворяет определенному условию, и в этом случае такой
цикл может закончиться, как только будет найден требуемый элемент.
Мы будем рассматривать итераторы как специальные методы класса-
группы, позволяющие выполнять некоторые действия для всех объектов,
включенных в группу
. Примером итератора является метод Show.
Нам бы хотелось иметь такой итератор, который позволял бы вы-
полнять над всеми элементами группы действия, заданные не одним из ме-
тодов объекта, а произвольной функцией пользователя. Такой итератор
можно реализовать, если эту функцию передавать ему через указатель на
функцию.
Определим тип указателя на функцию
следующим образом:
typedef void(*PF)(TObject*,< дополнительные параметры>);
Функция имеет обязательный параметр типа TObject или TObject*,
через который ей передается объект, для которого необходимо выполнить
определенные действия.
Метод-итератор объявляется следующим образом:
void TGroup::ForEach(PF action,< дополнительные параметры >);
где
action − единственный обязательный параметр-указатель на
функцию, которая вызывается для каждого элемента группы;
дополнительные параметры − передаваемые вызываемой
функции
параметры.
Затем определяется указатель на функцию и инициализируется пере-
даваемой итератору функцией.
PF pf=myfunc;
27 Иерархия объектов. Иерархия классов есть иерархия по принципу наследования, т.е. типа “это есть разновидность того”. Например, “рабочий есть разновид- ность персоны”, “автомобиль” есть разновидность “транспортного средства”. В отличие от этого иерархия объектов − это иерархия по принципу вхождения, т.е. типа “это есть часть того”. Например, “ус- тановка − часть завода”, “двигатель” − часть “автомобиля”. Таким об- разом, объекты нижнего уровня иерархии включаются в объекты более высокого уровня, которые являются для них группой. Итератор. Итераторы позволяют выполнять некоторые действия для каждого элемента определенного набора данных. For all элементов набора { действия} Такой цикл мог бы быть выполнен для всего набора, например, что- бы напечатать все элементы набора, или мог бы искать некоторый элемент, который удовлетворяет определенному условию, и в этом случае такой цикл может закончиться, как только будет найден требуемый элемент. Мы будем рассматривать итераторы как специальные методы класса- группы, позволяющие выполнять некоторые действия для всех объектов, включенных в группу. Примером итератора является метод Show. Нам бы хотелось иметь такой итератор, который позволял бы вы- полнять над всеми элементами группы действия, заданные не одним из ме- тодов объекта, а произвольной функцией пользователя. Такой итератор можно реализовать, если эту функцию передавать ему через указатель на функцию. Определим тип указателя на функцию следующим образом: typedef void(*PF)(TObject*,< дополнительные параметры>); Функция имеет обязательный параметр типа TObject или TObject*, через который ей передается объект, для которого необходимо выполнить определенные действия. Метод-итератор объявляется следующим образом: void TGroup::ForEach(PF action,< дополнительные параметры >); где action − единственный обязательный параметр-указатель на функцию, которая вызывается для каждого элемента группы; дополнительные параметры − передаваемые вызываемой функции параметры. Затем определяется указатель на функцию и инициализируется пере- даваемой итератору функцией. PF pf=myfunc;
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »