Разработка приложений в системе Delphi. Шейкер Т.Д. - 103 стр.

UptoLike

Составители: 

стандартные конструктор Create и деструктор Destroy. Можно даже
определить несколько конструкторов и деструкторов, выполняющих свою
работу разными способами. Объявление конструкторов и деструкторов
аналогично объявлению обычных процедур, только вместо слова
procedure
используются
constructor и destructor.
Конструктор может иметь параметры, через которые передаются исходные
значения полей. Конструктор может применяться к классу или объекту. При
применении конструктора к классу выполняются действия:
выделяется в памяти место под объект;
выделенная память заполняется. Поля, содержащие указатели и
объекты, получают значение
nil. Числовые поля заполняются нулями.
Строки задаются пустыми;
выполняются действия, определяемые конструктором;
ссылка на созданный объект возвращается в качестве значения
конструктора. Тип возвращаемого значения совпадает с типом класса,
использованного при вызове.
При применении конструктора к объекту новый объект не создаётся,
происходит переинициализация полей существующего. В этом случае
конструктор не возвращает никакого значения.
Деструктор уничтожает объект, к которому применяется: выполняется
заданный программный код деинициализации, освобождается занимаемая
объектом динамическая память. В теле деструктора должны уничтожаться
встроенные объекты и динамические данные, созданные конструктором.
Вызов деструктора для несуществующего объекта недопустим, если это
сделать, то произойдёт ошибка. Чтобы освободить программиста от
необходимости контролировать наличие объекта и его состояние (равен или нет
nil), ввели предопределённый метод Free, который следует вызывать вместо
деструктора. Метод
Free сам вызывает Destroy, но только если значение
объекта не равно
nil.
103
стандартные конструктор Create и деструктор Destroy. Можно даже
определить несколько конструкторов и деструкторов, выполняющих свою
работу разными способами. Объявление конструкторов и деструкторов
аналогично объявлению обычных процедур, только вместо слова procedure
используются constructor и destructor.
    Конструктор может иметь параметры, через которые передаются исходные
значения полей. Конструктор может применяться к классу или объекту. При
применении конструктора к классу выполняются действия:
    • выделяется в памяти место под объект;
    • выделенная память заполняется. Поля, содержащие указатели и
       объекты, получают значение nil. Числовые поля заполняются нулями.
       Строки задаются пустыми;
    • выполняются действия, определяемые конструктором;
    • ссылка на созданный объект возвращается в качестве значения
       конструктора. Тип возвращаемого значения совпадает с типом класса,
       использованного при вызове.
    При применении конструктора к объекту новый объект не создаётся,
происходит переинициализация полей существующего. В этом случае
конструктор не возвращает никакого значения.
    Деструктор уничтожает объект, к которому применяется: выполняется
заданный программный код деинициализации, освобождается занимаемая
объектом динамическая память. В теле деструктора должны уничтожаться
встроенные объекты и динамические данные, созданные конструктором.
    Вызов деструктора для несуществующего объекта недопустим, если это
сделать,   то   произойдёт   ошибка.   Чтобы   освободить   программиста   от
необходимости контролировать наличие объекта и его состояние (равен или нет
nil), ввели предопределённый метод Free, который следует вызывать вместо
деструктора. Метод Free сам вызывает Destroy, но только если значение
объекта не равно nil.


                                       103