Класс C ++ в стиле RAII для узлов связанного списка
В данный момент я играю со связанными списками в качестве упражнения.
Примеры, на которые я смотрю вКрекинг Интервью Кодирования В книге нет класса LinkedList (manager), только узлы, и вы держитесь за головной узел в своей основной функции.
Я искал реализации C ++, но большинство, кажется, больше в стиле C, чем в C ++, то есть не объектно-ориентировано. Они используют структуры, не используют классы и имеют статический метод для удаления списка, который нужно явно помнить для вызова. Я хотел написать разумный класс C ++ в стиле RAII (Resource Acquisition Is Initialization) с разумными деструкторами для обработки освобождения памяти, и я хотел использовать только класс Node (без класса LinkedList).
Единственный способ, которым я видел эту работу, состоял в том, чтобы деструктор Node удалял следующий Node, если он был, но я читал, что этот вид рекурсивного удаления является плохой идеей, потому что в итоге вы создаете тот же самый стек вызовов длина как связанный список.
Итак, подведем итог моего вопроса:
If writing an object-oriented class to handle linked lists in C++, do you have to have a LinkedList (manager) class which handles the deletion of the list nodes in its destructor? If not, how would you deal with destruction of Nodes?Спасибо!