C++教程:C++拷贝构造函数

2020-01-06 12:16:55刘景俊

   bool Delete();//删除当前结点
   void Show();//显示链表所有数据
   void Destroy();//清除整个链表
   private:
   Node head;//头结点
   Node * pcurrent;//当前结点指针
};
//未定义的函数与程序15.3相同
Linklist::Linklist(Linklist &l):head(l.head)
{
   cout<<"Linklist Deep cloner running..." <<endl;
   pcurrent=&head;
   Node * ptemp1=l.head.readn();//该指针用于指向原链表中被复制的结点
   while(ptemp1!=NULL)
   {
      Node * ptemp2=new Node(ptemp1->readi(),ptemp1->readc(),pcurrent,NULL);//新建结点,并复制idata和cdata,思考为何这里不能直接用Node的拷贝构造函数?
      pcurrent->setn(ptemp2);