3
リンクリストクラスの単純なコピーコンストラクタを作成しようとしています。私のクラスはシンプルで、最初のノードを指し示す変数Firstと、最後のノードを指す変数Lastがあります。C++単純なリンクリストのコピーコンストラクタを作成する
これは単一リンクであるため、各ノードは次のノードを指し示すため、前のノードはありません。コピーコンストラクタを作成しようとしましたが、最後のノードが同じアドレスを指しているように見えます。コピーしたリストに何かを追加すると、元のノードにも表示されます。
相続人は、私がこれまで持っているもの:
queue::queue(const queue &v){
first = v.first;
last = v.last;
first-> value = v.first->value;
node *curr = first;
node *otherCur = v.first;
while(otherCur->next != NULL){
cout << "------Next is: " << otherCur->next->value << endl;
curr ->next = otherCur->next;
curr->next->value = otherCur->next->value;
curr = curr->next;
otherCur = otherCur->next;
}
curr->next = NULL;
}
2番目のオブジェクトのすべてのノードは、1番目のオブジェクトの同じノードを指します。 2番目のリストのノードにメモリを割り当て、最初のリストのノードから値をコピーするだけです。 –
言い換えると、ポインティング先のデータをコピーするときにポインタをコピーしています – qxz