- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难释放以这种方式分配的内存
Text * text = new Text();
我有迭代器
for(iterator = textList.begin() ; iterator != textList.end() ; ++iterator)
{
if((*iterator)->getTitle() == element.toStdString())
{
textList.remove((*iterator));
break;
}
}
textList 包含指向类对象的指针
list<Text *>textList;
和析构函数
~Text() {delete this;}
我读过 remove() 方法实际上调用了对象的析构函数,但出于某种原因,情况并非如此。 Valgrind 清楚地显示内存泄漏。所以,如果你能给我一个关于如何释放内存的提示,我将不胜感激。
最佳答案
这看起来很可疑:
~Text() {delete this;}
当 this 已经被删除时,为什么要调用 delete this
?您存储指向文本的指针列表。如果您自己创建 Text 的实例,那么您还需要删除它们(或使用一些智能指针来帮助您这样做),或者,您也可以存储 Text 对象的列表:
list<Text> textList;
m_textList.push_back(Text("Some text"));
for (iterator = textList.begin() ; iterator != textList.end() ; ++iterator)
{
if (iterator->getTitle() == element.toStdString())
{
textList.remove(iterator);
break;
}
}
关于c++ - 类对象的自毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43483738/
自从学了C++之后,我时不时会用C++来联想一些其他编程语言(即Java)的一些特性。这可能是因为我根本没有 100% 信任它们(我认为 100% 信任任何东西都是愚蠢的),而关于 JFrame 的东
所以我找到了这段代码,它显然可以工作(因为它已经投入生产多年了): window[someMethod] = function (tmp) { callback({prop:"val"}, t
我正在寻找设计自毁 Cocoa 应用程序的方法。这个想法是在启动时检测应用程序是否正在进行逆向工程(这总是在多次尝试中完成)并在情况下删除/损坏它。当然,狂热的黑客可以重新下载并逆向设计破坏过程,但这
在学习 C++ 的过程中,我偶然发现了文章 Writing Copy Constructors and Assignment Operators它提出了一种机制来避免复制构造函数和赋值运算符之间的代码
所以我有这个 fiddle here它在右下角添加一个 div 以在用户添加元素时通知用户(单击事件 item1..item5 div)。此 div 在几秒钟后自毁 (div.remove())。 $
我是一名优秀的程序员,十分优秀!