リンクリストを実装しています。私はコピーコンストラクタを書きました:
// --- 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=
) には 2 つの目標が必要です。
- 現在のリストを削除します。
- 新しいリストをコピーします。
この 2 つの目標は、既に作成したデストラクタを呼び出してからコピー コンストラクタを呼び出すことで達成できます。どうすればいいですか?