Si supponga di disporre di una struttura con due puntatori ciascuno che punta a un oggetto con un distruttore implementato. Anche supporre che i punti della testa a una struttura Listnode che ha un valore non NULL * studenti e * prossimo:L'eliminazione di un puntatore di una struttura cancellerà anche i puntatori all'interno della struttura?
struct Listnode {
Student *student;
Listnode *next;
};
Listnode *head = new Listnode;
Se uso la parola delete
di riserva sul puntatore Listnode 'testa' intende invitare i distruttori entro che struttura la classe Student e la classe Listnode che rispettivamente "studente" e "successivo" puntano. In altre parole, cancellerà * head anche delete * student e * next head fornito era l'unico puntatore a quel Listnode
Quindi è possibile implementare un distruttore per una struttura? –
@PatMurray Assolutamente! Qualunque cosa tu possa fare in una classe, puoi farlo anche in una 'struct'. Infatti, l'unica differenza è che i membri della classe prima della prima dichiarazione di accesso (pubblica, privata o protetta) sono considerati privati, mentre gli stessi membri di una struct sono considerati pubblici. – dasblinkenlight
Le strutture possono ereditare come classi e l'accesso ereditario predefinito è pubblico per struct e private per le classi. Un'altra differenza, ma lungo le stesse linee. – MSalters