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;
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
在 m_ItemList 类的析构函数中delete
10
当需要销毁整个m_ItemList的时候,记得delete里面的每个 Item*
当需要从m_ItemList中移除元素的时候,记得delete要移除的 Item*
当然也可以用shared_ptr,那样的话delete就不用你管了
当需要从m_ItemList中移除元素的时候,记得delete要移除的 Item*
当然也可以用shared_ptr,那样的话delete就不用你管了