Для динамических объектов есть специальная форма процедуры new, с двумя параметрами, которая одновременно выделяет место объекту в куче и инициализирует его.
Объект может содержать указатели на динамические структуры или объекты, которые необходимо освободить или стереть в определённом порядке. Обычно для методов освобождения и стирания используют идентификатор done. Деструкторы – особые методы, предназначенные для освобождения динамически распределённых объектов. Их задача – осуществлять поиск размера этого типа экземпляра в таблице виртуальных методов и передавать этот размер процедуре dispose. Деструкторы применяются, когда полиморфные объекты должны быть очищены и освобождено их место в динамической памяти.
Рассмотрим программу, которая:
1) строит иерархию графических объектов (точка, маркер, окружность), выводит их на экране и может перемещать эти изображения по экрану;
2) выполняет предыдущее задание с использованием виртуальных методов;
3) создаёт связанный список динамических объектов (графических изображений) и выводит их на экран.
Для создания связанного списка динамических объектов создадим новый тип объекта LIST, его предназначение – возглавлять список других объектов (PointPtr – указатель на суперкласс графических объектов)