【问题标题】:Destructor for a linked-list node链表节点的析构函数
【发布时间】:2014-05-27 02:57:32
【问题描述】:

我的链接列表中有一个Node 类和一个List 类。我需要在 Node 类中使用析构函数,还是应该只在 List 类中使用析构函数来删除所有节点?

到目前为止,这是我的 .h:

class Node
{

public:

    int value;
    Node* next;
    Node();
    Node(int);
};

class List
{

private:

     Node* head;

public:

    List();
    List(List &a);
    ~List();
    //additional functions (insert, delete, etc)
};

【问题讨论】:

  • 您的代码会很有帮助...
  • 你在 Node 中动态分配内存吗?如果是,您应该在其析构函数中取消分配它。否则 Node 的胆量将在超出范围时被清除。 List 中的 Node 对象也是如此,如果它们是动态分配的,那么你应该在 List 的析构函数中销毁它们。

标签: c++ linked-list destructor


【解决方案1】:

这真的取决于你如何创建你的链表节点。如果你“新建”它,那么你必须调用“删除”来释放内存。从您的类定义看来,您没有在构造函数中分配任何内容。如果在构造函数中分配了任何内存,则必须在析构函数中释放它。

【讨论】:

    猜你喜欢
    • 2016-11-16
    • 2016-01-31
    • 2013-03-18
    • 2013-04-26
    • 1970-01-01
    • 2012-10-15
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多