Читайте также:
|
|
Включение объектов в некоторый класс можно реализовать и с использованием указателей на эти объекты. В отличие от объектного поля, которое включает в класс точно указанное количество объектов (1 или более - при использовании массива объектов) конкретного класса, использование указателей позволяет включить 0 или более объектов, если они собраны в массив или списковую (линейную или нелинейную) структуру.
Пример
Наполнение (класс «Функция»). В качестве примера рассмотрим класс, объекты которого должны осуществлять разбор заданного алгебраического выражения (выражение представляет собой запись функции от одной переменной - х). Данный объект должен обрабатывать сообщения:
«Конструировать» - в процессе конструирования должно строиться бинарное дерево вычисления выражения (рис.), переданного в списке параметров.
«Вычислить» - при обработке этого сообщения должно вычисляться значение функции по заданному значению аргумента.
В качестве элементов дерева будем использовать объекты класса «Триада». Объявление класса «Триада», реализующего элемент дерева вычислений, может выглядеть следующим образом:
Класс «Триада»:
Поле-адрес Левое_поддерево: Триада
Поле-адрес ПравоеПоддерево: Триада
Поле Операция
Поле Результат
метод Инициализировать (выражение)
Конец описания.
При описании класса Функция также используется поле-адрес:
Класс «Функция»:
поле-адрес Кореньдерева: ТРИАДА;
метод Конструировать (выражение);
метод Вычислить;
Дата добавления: 2015-09-06; просмотров: 126 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Композиция при разработке классов | | | Делегирование методов |