¿Es este un destructor LinkedList válido? Todavía estoy un poco confundido por ellos.Escribiendo un destructor LinkedList?
Quiero asegurarme de que estoy entendiendo esto correctamente.
LinkedList::~LinkedList()
{
ListNode *ptr;
for (ptr = head; head; ptr = head)
{
head = head->next
delete ptr;
}
}
Así que al principio del bucle, puntero PTR se ajusta para mantener la dirección de la cabeza, el primer nodo de la lista. la cabeza se establece en el siguiente elemento, que se convertirá en el comienzo de la lista una vez que esta primera eliminación se lleve a cabo. ptr se elimina, y también lo es el primer nodo. Con la primera iteración del ciclo, el puntero se establece en cabeza nuevamente.
Lo que me preocupa es llegar al último nodo. La condición "cabeza" debería verificar que no sea nulo, pero no estoy seguro de si funcionará.
Cualquier ayuda apreciada.
¿Por qué no intentas ejecutar el código a través de un depurador para ver si funciona? – Manuel
@Manuel, porque los depuradores en ciertas plataformas no están integrados, y son difíciles de usar? –
Sé que recibiré un disparo por esto (alguien siempre lo hace, pero yo soy un ganador). head es una variable miembro, realmente deberías tener una convención de nomenclatura para las variables miembro, como m_head o head_ – pm100