У мене є an, class A
який використовує розподіл пам'яті купи для одного з його полів. Клас А інстанціюється і зберігається як поле вказівника в іншому класі ( class B
.
Коли я закінчую з об'єктом класу B, я дзвоню delete
, який, як я вважаю, називає деструктором ... Але це також називає деструктор класу A?
Редагувати:
З відповідей я беру це (будь ласка, відредагуйте, якщо невірно):
delete
екземпляра B викликів B :: ~ B ();- який дзвонить
A::~A();
A::~A
повинні явноdelete
всі змінні член-об'єкти об'єкта A, виділені з купи;- Нарешті, блок пам'яті, що зберігає згаданий екземпляр класу B, повертається до купи - коли було використано нове , він спочатку виділив блок пам'яті на купу, потім викликав конструкторів, щоб ініціалізувати його, тепер після того, як всі деструктори будуть викликані для доопрацювання об'єкта об'єктом блок, де об'єкт перебував, повертається до купи.