问题标签 [delete-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 C++ 中重载删除运算符
在我的代码中,我重载了new
anddelete
运算符来获取文件名和行号。在我的代码中,我使用map
and stack
。当我从映射中删除特定值时,它只是调用我的重载delete
函数,但我只希望显式delete
语句能够访问我的函数,而不是其他函数。我怎样才能做到这一点?
c++ - 是否需要删除存储为静态局部变量的数组,以及如何删除?
我有几个数组和一个需要删除的资源,这些变量的值在程序的整个生命周期中都会保留,它们只在单个函数中使用,因此它自然适合静态变量:
但是,如果我使用静态,我将无法删除这些资源,因为我无法从函数外部访问这些变量。我可以制作这些全局变量,但如果可能的话,我想避免这种情况。
所以问题是:
- arrs[] 是堆栈分配还是堆分配?那么,我需要删除它吗?
- 在 GLUquadric 的情况下,显然编译器不知道如何正确删除它,现在我使用了一个运行良好的RAII包装类,但我正在寻找是否有更简单的方法。
valgrind 抱怨没有发布 GLUquadric,我想我只是清理它而不是让 valgrind 静音,即使当我释放它们时程序应该即将结束并且这些资源可能(?)在程序结束时释放.
c++ - 为什么 C++ 中有一个 delete[]?
为什么有一个delete[]
?据我了解,它对数组的行为不同。然而,它为什么真的存在呢?C中只有free,没有free_array。delete var
同样在语法上,和之间的唯一区别delete []var
是[]
没有参数(我没有告诉数组的长度)。
那么为什么delete[]
真的存在呢?我知道有人会说你可以超载delete
并且delete[]
(至少我认为这是可能的)但是可以说我们没有超载它。它为什么存在?
c++ - 如何释放指针向量?
如何释放指针向量中的内存?这是代码:
我发现.erase()
它不会释放内存,也不会调用析构函数;我尝试delete
在每个列表条目上使用迭代,但在一次迭代后崩溃。已经检查了列表条目是否已经为 NULL,以避免任何错误。我错过了什么吗?另外,我必须只使用 STL,不需要 Boost。
c++ - 不使用“new”在 C++ 中创建对象
我想制作一个程序,现在可以说表示一个矩阵,该矩阵将由一个向量表示,该向量中的每个对象都将表示一个单元格示例:vector now 当构造矩阵时,构造函数接收要插入的单元格列表矩阵。列表的大小在编译时是未知的
我有兴趣在不使用堆内存的情况下创建这个矩阵。换句话说,不使用“new”或“delete”这个词创建对象,如果我不知道有多少对象要插入向量中,有什么办法吗?
c++ - 对于向量中的指针,我们应该在擦除之前还是之后删除?
我们应该删除之前还是之后erase
。我的理解是两者都可以。这是正确的吗?
此外,是否有任何情况下我们不想在删除元素时删除它?我相信一定有,否则,erase
会很乐意承担责任。
c++ - 新建/删除“覆盖”与“重载”
我一直以为...
- 覆盖意味着在基类中重新实现一个函数(相同的签名),而
- 重载意味着实现同名但不同签名的函数
...并感到困惑,因为有时人们只是不关心差异。
关于新/删除:它们是重载还是被覆盖?
一个想法:
- 在 Class = 重载中实现 new/delete 运算符
- 重新实现全局 new/delete = override
有任何更正/建议/反对意见吗?并随时标记问题“头发分裂”......
c++ - 从模板列表中删除对象
我有一个模板列表说,
在 mList 中添加了子类的对象。
在从列表中删除对象时,我是否需要将对象转换为相应的子类并调用 delete 方法?
c++ - 如何删除模板?
我无法删除我的模板。
我的模板和析构函数:
我的堆和析构函数:
这是包含模板的对象,我也遇到了问题:
这里有什么问题?
c++ - 从堆栈中删除对象
从堆栈中手动删除对象是不好/非法的 C++,还是在某些情况下可以接受?
编辑
有什么方法可以检查对象是在堆上还是在堆栈上?