我创建一个循环内的一些对象,并把它添加到listwith:删除创建的对象的内部名单
list<MyObject> myList;
MyObject* ob = new MyObject();
ob.setAttribute("whatever");
myList.push_back(*ob);
循环结束后,我使用了列表几次。 我已经开始了一个泄漏检测器,看到了,我必须删除所有的MyObject
对象。
我如何正确删除它们(在析构函数中?)。我应该使用迭代器吗?但是,我如何获得真正的对象 - 而不是迭代器指针?
非常感谢。
请注意,您的列表包含原始对象,而不是指向它们的指针。 – Rerito
这不会编译 - 你试图将一个指针推入对象列表。除非你有一个很好的理由来使用'new',否则只要执行'push_back(Object())'并且不用担心内存泄漏。 –
对不起 - 我在问题中写了示例代码,忘记添加一些细节。我修改了它。 –