링크 된 목록을 보완하기 위해 특정 메서드를 사용하여 링크 된 목록을 구현하려고합니다. 내가 링크 된 목록을 링크 된 목록을 복사, 첫 번째 연결리스트의 머리를 삭제하고 출력에 내 오버로드 된 연산자 "< <"을 구현하면 는 그러나, 나는링크 된 목록에 대한 복사 생성자의 올바른 구현
Unhandled exception at 0x0128506C in program.exe: 0xC0000005: Access violation reading location 0xFEEEFEF2.
어떻게 당신이 복사 않는 오류를 얻을 첫 번째 연결된 목록에 의존하지 않고 연결된 목록.
NodeSLList list2 (list1); //copy constructor
temp = list1.DeleteFromHead();
cout << "node retrieved " << temp.data << endl;
cout << "cout << list1 " << endl;
cout << list1 << endl;
cout << list2 << endl; //error occurs
이 코드는 그냥 같은 요소를 가리키는 목록을 작성한다으로 무슨 일을하는지
NodeSLList::NodeSLList(NodeSLList & list)
{
head = list.head;
tail = list.tail;
cout << "copy constructor called" << endl;
}
연결된 목록 복사 생성자는 연결된 목록의 복사본을 생성해야합니다. 포인터 값의 복사본을 만드는 것은 그렇게하지 않습니다. 복사본에서 전체 링크 된 목록을 처음부터 다시 만들어야합니다. – PaulMcKenzie