Динамические объекты — страница 2
глубину вложенности конструкторов. Если на каком-то уровне обнаружится нехватка динамической памяти, необходимо ликвидировать всю цепочку успешно распределенных объектов. Чтобы эта операция стала возможной, в Турбо Паскаль введена стандартная процедура без параметров FAIL, которая может вызываться только из конструктора и которая освобождает уже выделенную конструктором память, завершает его работу и возвращает NIL. Для удаления динамического объекта из кучи используется особый метод - деструктор, описываемый с помощью зарезервированного слова DESTRUCTOR. В этом методе можно предусмотреть все действия, связанные с ликвидацией динамического объекта (т.е. переменной объектного типа, размещенной в динамической памяти), например, осуществить нужную коррекцию списка динамических объектов. Обращение к деструктору указывается вторым параметром при вызове процедуры DISPOSE, например: .......... type TLine = object(Point) ...... Constructor Init; Destructor Done; end; ....... New(PLine, Init); {Размещение динамического объекта} ....... Dispose(PLine, Done); {Удаление динамического объекта} ....... При необходимости деструктор, как и любой другой метод объекта (кроме конструктора!), можно объявить виртуальным.
Похожие работы
- Рефераты
- Рефераты