Czy można użyć „usuń to”, aby usunąć bieżący obiekt?

Piszę listę połączoną i chcę, aby destruktor struktury (struktura Node) po prostu usunął się i nie miał żadnych skutków ubocznych. Chcę, aby destruktor mojej listy iteracyjnie wywoływał sam destruktor węzłów (tymczasowo przechowujący następny węzeł), w ten sposób:

//my list class has first and last pointers
//and my nodes each have a pointer to the previous and next
//node
DoublyLinkedList::~DoublyLinkedList
{
    Node *temp = first();

    while (temp->next() != NULL)
    {
        delete temp;
        temp = temp->next();
    }
}

Więc to byłby mój destruktor węzłów:

Node::~Node
{
   delete this;
}

Czy jest to dopuszczalne, szczególnie w tym kontekście?

questionAnswers(8)

yourAnswerToTheQuestion