关于new,delete的问题,请教

C++语言 码拜 8年前 (2016-04-24) 690次浏览
        m_ItemList itemlist;
for (size_t i =0;&i < len;i++)
{
Item *item = new Item;
item->name = “xljOPC1”;
itemlist.AddTail(item);
}
driver->ReadValue(itemlist);

假如本人在for循环里delete,那么后续的itemlist就不能使用了,问一下这种情况本人该在哪里delete呢?
m_ItemList 是对象列表typedef CTypedPtrList<CObList, Item*> m_ItemList;
解决方案

20

引用:
Quote: 引用:

itemlist对象析构的时候

版主的意思是这个item不用专门的去delete,只要delete      itemlist  这个列表就可以了,是吧

在 m_ItemList 类的析构函数中delete

10

当需要销毁整个m_ItemList的时候,记得delete里面的每个 Item*
当需要从m_ItemList中移除元素的时候,记得delete要移除的 Item*
当然也可以用shared_ptr,那样的话delete就不用你管了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于new,delete的问题,请教
喜欢 (0)
[1034331897@qq.com]
分享 (0)