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)
};
这实际上取决于如何创建链表节点。如果要“新建”它,则必须调用“删除”以释放内存。从类定义来看,您似乎没有在构造函数中分配任何内容。如果在构造函数中分配了内存,则必须在析构函数中取消分配该内存。您的代码会很有帮助……是否在节点中动态分配内存?如果是,您应该在其析构函数中取消分配它。否则,当节点超出范围时,它的内脏将被清除。列表中的节点对象也是如此,如果它们是动态分配的,那么您应该在列表的析构函数中销毁它们。