我试图制作一个对象的副本,这是一个循环队列。我的 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;
}