J'ai une classe (Un) qui utilise un tas d'allocation de mémoire pour l'un de ses champs. La classe A est instancié et stocké dans un champ de pointeur dans une autre classe (B).
Quand je suis fait avec un objet B, j'ai appeler delete, qui, je suppose appelle le destructeur... Mais est-ce l'appel du destructeur de la classe A?
Edit:
Pour les réponses, je prends ça (merci de modifier si nécessaire):
-
delete
instance de B appels B::~B(); - qui demande
A::~A();
-
and A::~A
devrait explicitementdelete
tous allouées sur la pile variables membres d'Une; - et enfin le bloc de mémoire stockage de ladite instance de B est renvoyé à la tas - lorsque la nouvelle a été utilisé, il dispose d'un bloc de mémoire sur le tas, alors invoqué des constructeurs pour l'initialiser, maintenant, après toutes les destructeurs ont été invoquées pour finaliser l'objet le bloc où l'objet résidé est retourné sur le segment.