循環キューであるオブジェクトのコピーを作成しようとしています。Enqueue と Dequeue は正しく動作しますが、これを行うたびに実行時エラーが発生します。
CQUEUE j = k;
出力ウィンドウに、コピー コンストラクターがすべての制御パスで再帰的であると表示されます。誰かが私が間違っていることを理解するのを手伝ってくれますか? これが私のコピー コンストラクターと、オーバーロードされた代入演算子です。
CQUEUE::CQUEUE(const CQUEUE& original)
{
(*this) = original;
}
void CQUEUE::operator=(CQUEUE w)
{
qnode *p = w.front;
(*this).front = new qnode;
(*this).back = front;
while(p -> next != w.back)
{
back -> num = p -> num;
p = p -> next;
back -> next = new qnode;
back = back -> next;
}
back -> num = p -> num;
p = p -> next;
back -> next = new qnode;
back = back -> next;
back -> num = p -> num;
back -> next = front;
front -> prev = back;
}