【发布时间】:2014-11-14 23:46:14
【问题描述】:
我正在尝试实现链表,并使用某些方法来补充链表。 但是,一旦我复制了链表,并删除了第一个链表的头部,并实现了我的重载运算符“
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;
}
【问题讨论】:
-
链表复制构造函数应该创建链表的副本。仅仅复制指针值并不能做到这一点。您需要在副本中从头开始重新创建整个链表。
标签: c++ pointers constructor linked-list copy-constructor