使用STL列表容器,需要初始化作为属性的链表
Using STL list container, a linked list as an attribute needed to be initialised?
我很困惑,当使用STL列表作为类中的属性时,我们是否需要初始化构造函数中的链表,以及如何使用析构函数将内存释放回系统?我知道STL列表有一个自动删除链接列表的描述符。然而,我的导师要求我们在课堂上加入析构函数。因此,我正在考虑如何处理列表属性。
所以我有一个Column类,它包含一个char的链表作为它的属性。到目前为止,我有:
class Column
{
private:
list<char> chars;
list<char>::const_iterator itr;
public:
Column()
{
}
~Column()
{
}
.....
};
那么,我需要初始化构造函数中的链表字符吗?我需要删除析构函数中的链表吗?我知道我们通常在使用new之后再使用delete。或者我可以像这样把构造函数和析构函数的内容留空吗?谢谢你的帮助。
您不需要显式调用std::list成员的构造函数和析构函数。编译器会为您处理这些问题。
所以,是的,你可以让这个类的构造函数和析构函数为空。
在您的情况下,分配和取消分配内存是std::list
的责任,因此您不需要在析构函数中执行任何操作。将构造函数和析构函数体留空将正常工作,并且不会出现内存泄漏。
相关文章:
- 类的C++属性似乎已重新初始化
- 我的子类的属性是延迟初始化的
- 如何在不知道属性具有哪些构造函数的情况下初始化属性?
- boost::spirit指针属性是用nullptr初始化的吗?
- C++ 中常量属性的初始化构造函数错误
- 在构造函数 c++ 中初始化属性时出现问题
- 初始化类C++私有属性(值/引用/静态)
- 为什么结构属性声明和初始化顺序的行为是这样的?
- 程序在没有输入的情况下退出,它有基本的,驱动的类属性初始化问题
- 提升捆绑属性:是否需要初始化每个边的所有属性?
- 当我初始化了指针属性 allready 时,如何将 QGraphicsItem 向下投射到创建的类?
- 使初始化变量可供多个属性初始化方法访问
- 如何在C++中初始化孙子的祖父母(const)属性?
- 如果第二个属性未支撑,则将与支撑初始化器配对缩小转换
- 组合框初始化错误:无法读取未定义的属性'constructor'
- 正在使用std::string初始化istream属性
- QObject 自定义属性何时从样式表中指定的值初始化
- 在c++中查找对象的未初始化属性
- 类初始化-属性没有默认构造函数
- 错误C2512:没有合适的默认构造函数可用-如果在构造函数中初始化属性,为什么