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?