C++ 链表节点的析构函数

C++ 链表节点的析构函数,c++,linked-list,destructor,C++,Linked List,Destructor,我的链表中有一个节点类和一个列表类。我是否需要在节点类中使用析构函数,还是应该在列表类中使用析构函数来删除所有节点 以下是迄今为止我的.h: class Node { public: int value; Node* next; Node(); Node(int); }; class List { private: Node* head; public: List(); List(List &a); ~Lis

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

以下是迄今为止我的.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)
};

这实际上取决于如何创建链表节点。如果要“新建”它,则必须调用“删除”以释放内存。从类定义来看,您似乎没有在构造函数中分配任何内容。如果在构造函数中分配了内存,则必须在析构函数中取消分配该内存。

您的代码会很有帮助……是否在节点中动态分配内存?如果是,您应该在其析构函数中取消分配它。否则,当节点超出范围时,它的内脏将被清除。列表中的节点对象也是如此,如果它们是动态分配的,那么您应该在列表的析构函数中销毁它们。