Tengo uno class A
que usa una asignación de memoria de montón para uno de sus campos. La clase A se instancia y se almacena como un campo de puntero en otra clase ( class B
.
Cuando termino con un objeto de clase B, llamo delete
, que supongo que llama al destructor ... ¿Pero esto también llama al destructor de la clase A?
Editar:
De las respuestas, tomo eso (edite si es incorrecto):
delete
de una instancia de B llama a B :: ~ B ();- que llama
A::~A();
A::~A
debería explícitamentedelete
todas las variables miembro asignadas en el montón del objeto A;- Finalmente, el bloque de memoria que almacena dicha instancia de clase B se devuelve al montón: cuando se usó nuevo , primero asignó un bloque de memoria en el montón, luego invocó a los constructores para inicializarlo, ahora después de que se hayan invocado todos los destructores para finalizar el objeto, el El bloque donde residía el objeto se devuelve al montón.