将复制赋值运算符与链表配合使用

Using copy assignment operator with linked list

提问人:nobody00shader 提问时间:4/5/2023 最后编辑:nobody00shader 更新时间:4/5/2023 访问量:17

问:

该main.cpp具有 list4 = list3 = list1,用于测试重载运算符

所有列表都有 3 个双精度,但列表 4 后面附加了一个额外的双精度,从而获得 4 个双精度。

我必须显示所有 3 个列表,但是在显示它们时,添加到列表 4 的双精度也出现在其他 2 个列表中。

// Class that is in a header file
class NumberList
{
private:
   // Declare a structure for the list
   struct ListNode
   {
      double value;          
      struct ListNode *next;  
   }; 

   ListNode *head;           

public:
   
   NumberList()
        { head = NULL; }
   
   NumberList(const NumberList& origObject);

  
   NumberList& operator=(const NumberList& objToCopy);

  
   ~NumberList();
      
   // Linked list operations
   void appendNode(double);
   void insertNode(double);
   void deleteNode(double);
   void displayList() const;

//copy assignment operator
};
NumberList& NumberList::operator=(const NumberList& objToCopy){
   cout << "overlaoded operator" << endl;
   if(this != &objToCopy){
      delete head;
      head = new ListNode;
      *head = *(objToCopy.head);
   }
   return *this;
}

这就是我所拥有的赋值运算符,这是我无法开始工作的。我相信我必须使用 while 循环和附加。但我真的不知道该怎么办。

链表 运算符重载 copy-assignment

评论


答: 暂无答案