Книга: Основы объектно-ориентированного программирования

Опорный элемент Current

Опорный элемент Current

В качестве опорного элемента можно использовать Current, обозначающий текущий экземпляр класса (о текущем экземпляре см. лекцию 7). Сущность, описанная в классе A как like Current, будет считаться в нем имеющей тип A, а в любом B, порожденном от A, - имеющей тип B.

Эта форма закрепленного объявления помогает решить оставшиеся проблемы. Исправим объявление conjugate, получив правильный тип результата функции класса POINT:

conjugate: like Current is
... Все остальное - в точности, как раньше ...

Теперь в каждом порожденном классе тип результата conjugate автоматически определяется заново. Так, в классе PARTICLE он меняется на класс PARTICLE.

В классе LINKABLE, найдя объявления

right: LINKABLE [G]
put_right (other: LINKABLE [G]) is...

замените LINKABLE [G] на like Current. Компонент left класса BI_LINKABLE объявите аналогично.

Эта схема применима ко многим процедурам set_attribute. В классе DEVICE имеем:

class DEVICE feature
alternate: like Current
set_alternate (a: like Current) is
-- Пусть a - альтернативное устройство.
do
alternate := a
end
... Прочие компоненты ...
end

Оглавление книги


Генерация: 0.453. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз