Ne ho uno class A
che utilizza un'allocazione di memoria heap per uno dei suoi campi. La classe A è istanziata e memorizzata come campo puntatore in un'altra classe ( class B
.
Quando ho finito con un oggetto di classe B, chiamo delete
, che presumo chiama il distruttore ... Ma questo chiama anche il distruttore di classe A?
Modificare:
Dalle risposte, lo prendo (per favore modifica se non corretto):
delete
di un'istanza di B chiama B :: ~ B ();- che chiama
A::~A();
A::~A
dovrebbe esplicitamentedelete
tutte le variabili membro allocate in heap dell'oggetto A;- Alla fine il blocco di memoria che memorizza detta istanza di classe B viene restituito all'heap: quando ne veniva usato uno nuovo , allocava prima un blocco di memoria sull'heap, quindi invocava i costruttori per inizializzarlo, ora dopo che tutti i distruttori sono stati richiamati per finalizzare l'oggetto blocco in cui l'oggetto risiedeva viene restituito all'heap.