Конструктор копирования в переполненном стеке связанного списка

Я студент первого курса, и, просматривая свои заметки из связанного списка, я увидел, что использовался конструктор копирования. Ранее, когда я изучал реализацию на основе массива ADT, я не видел конструктор копирования. Почему конструктор копирования используется в связанном списке? Это важно для реализации конструктора копирования?

0

Решение

Фактически, не видя код, невозможно сказать наверняка, но я скажу, что для реализации связанного списка это очень вероятно что требуется конструктор копирования и оператор присваивания, чтобы не допускайте, чтобы ваш класс нарушал семантику копирования в отношении динамического распределения, выполняемого вашим конструктором, и удаления, выполняемого вашим деструктором.

Если вы видели реализацию в прошлом, которая не имела их, это очень вероятно что он был сломан / неисправен / ошибочен, и это не является чем-то необычным в Интернете, где существуют бесконечные ужасные реализации для начинающих, и они выдают себя за «как вы должны это сделать» в нерецензированных руководствах. Это даже довольно часто встречается в учебном материале университета, к сожалению.

Выучите C ++ из Хорошая книга, и читать о Правило трех.
Затем удалите вашу реализацию и используйте std::list!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]