exercise 4.3

E2.

 What is wrong with the following attempt to use the copy constructor to implement the overloaded assignment operator for a linked Stack?

 

void Stack::operator=(const Stack&original)
{
 Stack new_copy(original);
 top_node=new_copy.top_node;
}

How can we modify this code to give a correct implementation?

 

正解:

void Stack::operator=(const Stack&original)
{
 Node*new_top,*new_copy,*original_node=original.top_node;
 if(original_node==NULL)
  new_top=NULL;
 else
 {
  new_copy=new_top=new Node(origanal_node->entry);
  while(original_code->NULL)
  {
   original_node=original_node->next;
   new_copy->next=new Node(original_node->entry);
   cew_copy=new_copy->next;
  }
 }
 while(!empty())
  pop();
 top_node=new_top;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值