【发布时间】:2010-09-17 07:00:27
【问题描述】:
从类返回对象时,什么时候释放内存合适?
例子,
class AnimalLister
{
public:
Animal* getNewAnimal()
{
Animal* animal1 = new Animal();
return animal1;
}
}
如果我创建一个 Animal Lister 实例并从中获取 Animal 引用,那么我应该在哪里删除它?
int main() {
AnimalLister al;
Animal *a1, *a2;
a1 = al.getNewAnimal();
a2 = al.getNewAnimal();
}
这里的问题是 AnimalLister 没有办法跟踪创建的动物列表,那么我如何更改此类代码的逻辑以删除创建的对象。
【问题讨论】:
-
我想你的意思是“动物 *a1, *a2;”不是“动物 a1, a2;”
标签: c++ memory-management factory