Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Расскажите о деструкторе класса экземпляров класса




Ответ: Объект естественным образом занимает место в памяти, которая необходима для хранения, как свойств объекта, так и дополнительной информации, например, таблицы виртуальных методов. Для разрушения объекта и освобождения памяти, которая выделена для него в конструкторе, предназначен деструктор — специализированный метод, изначально определенный в классе TObject. Если в конструкторе объекта производится выделение памяти под какие-либо ресурсы или объект регистрируется в других объектах, передавая им ссылку на себя, то возникает необходимость переопределения деструктора для освобождения памяти и разрушения связей с другими элементами программы. При переопределении деструктора необходимо указывать ключевое слово override, так как деструктор является виртуальным методом (помечен ключевым словом virtual в описании класса TObject). Последней командой описательной части деструктора должен быть вызов переопределенного деструктора родительского класса. Прямой вызов деструктора не применяется для уничтожения экземпляра класса, так как для этого предназначен метод Free, также описанный в классе TObject. Данный метод не может быть переопределен, так как не имеет в своем описании ключевого слова virtual, однако метод Free вызывает конструктор Destroy, поведение которого может быть специфическим.

Порядковые (целочисленные, логические, перечислимые и интервальные) свойства объекта нулевыми значениями; устанавливает нулевые ссылки (значение nil) для свойств-указателей; а также устанавливает нулевые длины строкам.

2. Возвращает ссылку на объект, которую можно сохранить в переменной для доступа к свойствам и методам объекта, а также для его последующего разрушения.

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

1. Конструктор родительского класса не должен быть обязательно помечен ключевым словом virtual, для того, чтобы его переопределить. Соответственно, если конструктор родительского класса не помечен как виртуальный или динамический, не требуется указание ключевого слова override в описании дочернего класса.

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

это возможно, только если конструктор не является виртуальным.

Для вызова версии конструктора, замененной в классе-наследнике, используется ключевое слово Inherited.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных