我很困惑,当使用STL列表作为类中的属性时,我们是否需要在构造函数中初始化链表,以及如何使用析构函数将内存释放回系统?我知道STL列表有一个desctrutor自动删除链表。但是,我的导师要求我们在课程中包含析构函数。所以我想知道如何处理list属性。
所以我有一个Column类,其中包含char的链接列表作为其属性。到目前为止,我有:
class Column
{
private:
list<char> chars;
list<char>::const_iterator itr;
public:
Column()
{
}
~Column()
{
}
.....
};
所以我需要初始化构造函数中的链表列表,我是否需要删除析构函数中的链表?我知道我们通常在使用new后使用delete。或者我可以将构造函数和析构函数的内容保留为空吗? 谢谢你的帮助。
答案 0 :(得分:1)
您不需要显式调用std :: list成员的构造函数和析构函数。编译器会为你处理这些。
所以是的,你可以将这个类的构造函数和析构函数留空。
答案 1 :(得分:1)
在您的情况下,std::list
负责分配和取消分配内存,因此您无需在析构函数中执行任何操作。将构造函数和析构函数体保持为空将正常工作,并且不会发生内存泄漏。