È un distruttore LinkedList valido? Sono ancora un po 'confuso da loro.Scrittura di un distruttore LinkedList?
Voglio essere sicuro di capirlo correttamente.
LinkedList::~LinkedList()
{
ListNode *ptr;
for (ptr = head; head; ptr = head)
{
head = head->next
delete ptr;
}
}
Così, all'inizio del ciclo, puntatore PTR è impostato per contenere l'indirizzo della testa, il primo nodo della lista. la testa viene quindi impostata sull'elemento successivo, che diventerà l'inizio dell'elenco una volta eseguita questa prima eliminazione. ptr è cancellato, e così è il primo nodo. Con la prima iterazione del ciclo, il puntatore viene reimpostato nuovamente.
La cosa che mi riguarda è raggiungere l'ultimo nodo. La condizione "testa"; dovrebbe verificare che non sia nullo, ma non sono sicuro che funzionerà.
Qualsiasi aiuto apprezzato.
Perché non provare a eseguire il codice tramite un debugger per vedere se funziona? – Manuel
@Manuel, perché i debugger su alcune piattaforme non sono integrati e sono difficili da usare? –
so che mi faranno sparare per questo (qualcuno lo fa sempre, ma sono un beleiver). head è una variabile membro, dovresti davvero avere una convenzione di denominazione per le variabili membro, come m_head o head_ – pm100