Klasa C ++ w stylu RAII dla połączonych węzłów listy

W tej chwili gram z listami połączonymi jako ćwiczenie.

Przykłady, na które patrzę wWywiad Cracking The Coding książka nie ma klasy LinkedList (menedżera), tylko węzły, a ty trzymasz się węzła głównego w głównej funkcji.

Sprawdziłem implementacje C ++, ale większość wydaje się być bardziej w stylu C niż C ++, tj. Nie jest zorientowana obiektowo. Korzystają ze struktur, bez klas i mają statyczną metodę usuwania listy, którą należy jawnie wywołać. Chciałem napisać rozsądną klasę C ++ w stylu RAII (Resource Acquisition Is Initialization) z sensownymi destruktorami do obsługi zwalniania pamięci i chciałem użyć tylko klasy Node (bez klasy LinkedList).

Jedynym sposobem, aby zobaczyć tę pracę, było usunięcie przez Node'a destruktora następnego węzła, jeśli taki był, ale przeczytałem, że ten rodzaj rekurencyjnego usuwania jest złym pomysłem, ponieważ kończy się tworzeniem zestawu połączeń o tej samej długości co połączona lista.

Podsumowując moje pytanie:

Czy pisząc klasę obiektową do obsługi list połączonych w C ++, musisz mieć klasę LinkedList (manager), która obsługuje usuwanie węzłów listy w jej destruktorze?Jeśli nie, jak poradziłbyś sobie ze zniszczeniem węzłów?

Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion