Конструкторы и деструкторы

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00383.docx

Операторы PASCAL ABC

Конструкторы и деструкторы

Объекты создаются и уничтожаются с помощью специальных методов, называемых конструкторами и деструкторами.

Конструктор представляет собой функцию, создающую объект в динамической памяти, инициализирующую его поля и возвращающую указатель на созданный объект. Этот указатель обычно сразу присваивается переменной типа класс. При описании конструктора вместо служебного слова function используется служебное слово constructor. Кроме того, для конструктора не указывается тип возвращаемого значения. Для вызова конструктора следует указать имя класса, за которым следует точка-разделитель, имя конструктора и список параметров. Например:

var s: Student;
...
s:=Student.Create('Иванов',1,3);

При создании объекта поля не инициализируются автоматически, поэтому рекомендуется все поля инициализировать в конструкторе явно.

Деструктор представляет собой процедуру, уничтожающую объект и освобождающую динамическую память, которую этот объект занимал. При описании деструктора вместо служебного слова procedure используется служебное слово destructor. Деструктор объекта вызывается как обычный метод:

s.Destroy;

После вызова деструктора пользоваться объектом (т.е. обращаться к его полям и вызывать его методы) нельзя. Чтобы это подчеркнуть, полезно сразу после вызова деструктора присвоить переменной, представляющей объект, значение nil:

s:=nil;

В Pascal ABC, как и в Borland Delphi, принято использовать имя Create для конструктора и имя Destroy - для деструктора.

В Pascal ABC конструктор можно также вызвать как обычную процедуру, при этом создание объекта не происходит, а выполняется лишь тело конструктора.