指针数据链接列表的复制构造函数

Copy constructor for a pointer data linked list

本文关键字:复制 构造函数 列表 数据 链接 指针      更新时间:2023-10-16

您可以帮助我为此列表编写复制构造函数,请注意数据是间接存储的。

     class List {
         private:
         struct Node {
            Data *data;
            Node *next;
         };
         Node *head;
    };

您可以假定您有数据类的复制构造函数。

谢谢。

您的类定义需要添加函数签名:

List(const List& list);

参数是您要复制的列表。

您还需要实现此功能。

  List::List(const List& list)
  {
    //Iterate through the list parameter's nodes, and recreate the list
    //exactly as it is in the list you passed in.
  }

请注意,您可能想要这样做:

  List::List(const List& list)
  {
    head = list.head;
  }

因为它不是列表的副本,所以它实际上是对相同 list的第二个引用。

您可以这样称呼此功能:

List thisIsAPremadeList;
List copyOfList(thisIsAPremadeList);

现在,CopyOflist包含了THISAPREMADELIST所拥有的所有内容的深层副本。