Динамические объекты — страница 2

  • Просмотров 2522
  • Скачиваний 349
  • Размер файла 9
    Кб

глубину вложенности конструкторов. Если на каком-то уровне обнаружится нехватка динамической памяти, необходимо ликвидировать всю цепочку успешно распределенных объектов. Чтобы эта операция стала возможной, в Турбо Паскаль введена стандартная процедура без параметров FAIL, которая может вызываться только из конструктора и которая освобождает уже выделенную конструктором память, завершает его работу и возвращает NIL. Для

удаления динамического объекта из кучи используется особый метод - деструктор, описываемый с помощью зарезервированного слова DESTRUCTOR. В этом методе можно предусмотреть все действия, связанные с ликвидацией динамического объекта (т.е. переменной объектного типа, размещенной в динамической памяти), например, осуществить нужную коррекцию списка динамических объектов. Обращение к деструктору указывается вторым параметром при

вызове процедуры DISPOSE, например: .......... type TLine = object(Point) ...... Constructor Init; Destructor Done; end; ....... New(PLine, Init); {Размещение динамического объекта} ....... Dispose(PLine, Done); {Удаление динамического объекта} ....... При необходимости деструктор, как и любой другой метод объекта (кроме конструктора!), можно объявить виртуальным.