我正在实现一个链接列表。我写了一个复制构造函数:
// --- copy constructor ---
IntList(const IntList& last_list) {
first = new IntNode(last_list.getFirst()->getData());
cout << "copy first " << first->getData() << endl;
IntNode* last_node = first;
IntNode* node = last_list.getFirst()->getNext();
while(node!=NULL) {
IntNode* new_node = new IntNode(node->getData());
last_node->setNext(new_node);
cout << "copy " << new_node->getData()<< endl;
last_node = new_node;
node = node->getNext();
}
}
据我了解,我的复制赋值运算符 ( operator=
) 应该有两个目标:
- 删除当前列表。
- 复制新列表。
我可以通过调用我已经编写的析构函数然后调用复制构造函数来实现这两个目标。我该怎么做?