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


Перекрытие инициализации по умолчанию - часть 2


Для такого класса клиент будет создавать точки инструкциями вида:

create my_point.make_cartesian (0, 1) create my_point.make_polar (1, Pi/2)

В обоих случаях создается точка с одинаковыми координатами в предположении, что константа Pi имеет общепринятый смысл. Вот правило, определяющее эффект порождающего вызова. Первые три пункта правила такие же, как и для базисной формы, приведенной ранее:

Эффект порождающего вызова

Рассмотрим порождающий вызов в форме create x.p(...).

Пусть тип цели x это ссылочный тип, основанный на классе C, p(...) - процедура создания класса C, с заданным списком фактических аргументов. Эффект вызова состоит в выполнении следующих четырех шагов:

  • (C1) Создание нового экземпляра C (набора полей, по одному на каждый атрибут C). Пусть OC - это новый экземпляр.
  • (C2) Инициализация каждого поля OC соответствующими стандартными значениями по умолчанию.
  • (C3) Присоединение значения x (ссылки) к OC.
  • (С4) Вызов процедуры p c заданными аргументами и с целевым объектом OC.




- Начало -  - Назад -  - Вперед -



Книжный магазин