На этом шаге мы дадим краткую характеристику деструктора.
Деструктор Destroy класса TObject выполняет самые общие стандартные действия по уничтожению объектов,
с помощью вызова метод FreeInstance класса TObject, который в свою очередь:
- вызывает метод CleanupInstance класса TObject для корректного завешения работы с длинными строками и другими сложными структурами данных;
- вызывает метод InstanceSize из того же класса для определения размера памяти, занимаемого удаляемым объектом.
Деструктор Destroy класса TObject имеет такой заголовок:
destructor Destroy; virtual;
Обратим внимание на важную особенность описания конструкторов и деструкторов. Поскольку деструктор Destroy в классе TObject объявлен виртуальным,
то при его объявлении в пользовательских классах использование директивы override является необходимым условием для обеспечения корректных вызовов деструктора.
Тоже самое относится и к конструктору Create, если он используется в описаниях классов, являющихся потомками классов ТСоmponent и TComponentEditor.
Что касается деструктора Destroy и уничтожения объектов, то следует отметить, что класс TObject содержит еще один метод Free, предназначенный для той же цели.
Метод Free сам вызывает деструктор Destroy, но только в том случае, если есть что освобождать, то есть объект имеет значение, отличное от nil. Напомним, что в Object Pascal все
объекты - динамические, и, следовательно, переменная-объект является указателем.
Кроме конструктора Create и деструктора Destroy в классе TObject объявлены также другие методы, среди которых есть как классовые методы (методы, представляющие собой классы), так и обычные.
На следующем шаге мы приведем краткое описание классовых методов.