在类实现中为字符串的覆盖默认破坏者
Overriding default destructor for strings in class implementation
我正在尝试使用顺序列表实现队列。但是,对于带有字符串元素的队列,程序崩溃。
以下是队列构造函数的相关部分:
{
string *ptr = new string[num];
}
寻找一段时间后,我怀疑问题是灾难源。在调用破坏者时,我正在删除顺序列表的数组指针,并将其设置为null:
{
delete ptr;
ptr = NULL;
}
但是,由于字符串库提供了默认的驱动器,因此删除字符串,然后我试图删除一个不存在的指针。我认为这将访问无法访问的内存,这会导致细分故障。队列实现非常适合INT和Double。
我正在使用int,double和字符串元素类型的模板。如果驱动器为空,则不会动态地对INT和双重元素队列的内存进行动态处理。
除了拥有一个空的类驱动器并使用默认字符串驱动器外,是否有任何简单的方法可以解决此问题?
删除仅删除非简单类型的第一个实例。删除[]调用所有实例的dtor
我不知道这里的完整范围,但是仅仅是要删除nullptr的定义很好,并且什么也不做。
相关文章:
- 有没有办法覆盖 wireshark 中的默认剖析器?
- 在子类函数覆盖中省略具有默认值的参数
- 如何仅覆盖一个EXPECT_CALL的默认ON_CALL操作,并在以后返回到默认操作
- 在类实现中为字符串的覆盖默认破坏者
- 许多小部件似乎对太空栏键按事件具有默认行为.我该如何覆盖它而不将每个小部件分类
- 正在覆盖find_package的默认搜索顺序
- 虚拟析构函数的默认覆盖
- 覆盖来自 R 的C++编译标志的系统默认值
- C++VS2013:覆盖默认构造函数不起作用
- 如何减少googletest的详细程度(覆盖默认侦听器的两种方法)
- 如何覆盖Qt中的默认快捷方式
- 为什么子类覆盖虚拟函数不能更改父类的默认函数参数
- 为什么我不能在 C++ 中使用模板版本覆盖默认的复制构造函数和赋值运算符
- 为什么模板复制构造函数覆盖默认的复制构造函数
- 覆盖默认的未处理异常行为
- 覆盖默认头搜索路径
- GMock:覆盖默认期望
- c++默认参数:是否可以在不覆盖早期默认参数的情况下覆盖默认参数
- 如何在拖动窗口时覆盖默认的 linux Alt+鼠标行为
- 生成文件覆盖默认隐式规则