Ваш экземпляр ctor действительно странный.Вместо добавления элементов в создаваемый список вы создаете новый список (почему?), А затем добавляете в него элементы.После этого вы просто выходите из функции.Новый созданный список остается в куче недоступным, то есть утечкой, а созданный список остается пустым.
Можете ли вы просто insert
скопировать элементы списка, не в некотором newList
, а в этом?
Двойное удаление происходит по другой причине: в вашем main
вы объявляете два указателя, myList
и myList2
, которые оба указывают на один и тот же список в памяти, а затем пытаетесь удалить их оба.Вы можете быстро исправить это, правильно построив myList2
:
SingleLinkedList<int> * myList2{new SingleLinkedList<int>(*myList)};
, но я предлагаю вам вообще избавиться от указателей в вашем main
:
SingleLinkedList<int> myList;
SingleLinkedList<int> myList2(myList);
(И незабудьте потом поменять все ->
s на .
s ниже.)
В конце концов, это не Java, не каждая жизнь начинается с new
.