Eu tenho um class Aque usa uma alocação de memória heap para um de seus campos. A classe A é instanciada e armazenada como um campo de ponteiro em outra classe ( class B.
Quando termino com um objeto da classe B, eu chamo delete, que eu suponho que chama de destruidor ... Mas isso também chama o destruidor da classe A?
Editar:
A partir das respostas, entendi (por favor, edite se estiver incorreto):
deletede uma instância de B chama B :: ~ B ();- que chama
A::~A(); A::~Adeve explicitamentedeletetodas as variáveis de membro alocado-heap do objeto A;- Finalmente, o bloco de memória que armazena a instância da classe B é retornada ao heap - quando novo foi usado, ele primeiro alocou um bloco de memória no heap e depois chamou os construtores para inicializá-lo, agora que todos os destruidores foram chamados para finalizar o objeto. bloco em que o objeto residia é retornado ao heap.