Я пишу связанный список, и я хочу, чтобы деструктор структуры (структура узла) просто удалял себя и не имел никаких побочных эффектов. Я хочу, чтобы деструктор моего списка, чтобы итеративно назвать Node деструктор на себя (временного хранения следующего узла), как это:Можно ли использовать «удалить это», чтобы удалить текущий объект?
//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();
}
}
Так это будет мой Node деструктор:
Node::~Node
{
delete this;
}
Допустимо ли это, особенно в этом контексте?
Я собираюсь быть последним, кто пойдет на закрытие, но я считаю, что этот вопрос был задан несколько раз в прошлом: http://www.google.com/search?q=delete + this + site: stackoverflow.com –