Supprimer liste liée

Hey je me le demande
J'ai écrit en C++ une liste liée, où j'appelle un destructeur de passer par un alloués liste, et supprimer chaque nœud trouvé. Cependant ce que j'ai trouvé est que, bien qu'il passe par la liste liée, et supprimer toutes les occurence, il sera toujours imprimer les valeurs. Bien que seulement quelques bouts de valeurs.

Mais ne devrait-elle pas être quand je supprime le linked_list il ne devrait pas être imprimable la prochaine fois?
Je vais créer une liste liée à l'aide de la new, et delete quand je l'ai supprimer de la liste

sorted_list::~sorted_list()
{
    //Destructor implementation
    destroy(this->first);
    cout << "Destructor called sorted_list" << endl;
}

void sorted_list::destroy(list_link* item)
{
  if (item)
  {
    destroy(item->next);
    delete item;
  }
}

fonction d'impression

void sorted_list::print() {

    if(this->first)
    {
        iteratorn *traverse = new iteratorn(this->first);
        while( !traverse->iterator_end() )
        {
            cout << traverse->iterator_get_key() << " ";
            traverse->iterator_next();
        }
        delete traverse;
    }
    else
        cout << "list empty" << endl;
}
Pas assez de code. Montrer le code qui génère la liste, et de montrer le code qui permet d'afficher les valeurs qu'il ne devrait pas.
Vous supprimez this->d'abord deux fois (une fois dans la détruire).
Vous n'avez pas besoin d'affecter NULL (ou même à 0) à this->first dans le destructeur. La liste est libéré, il a disparu, totalement inaccessible.
Pate @wilhelmtell merci pour l'entrée j'ai supprimer la double suppression de cette->premier maintenant

OriginalL'auteur starcorn | 2010-11-06