从类中返回对象时,何时是释放内存的正确时间?
例,
class AnimalLister
{
public:
Animal* getNewAnimal()
{
Animal* animal1 = new Animal();
return animal1;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我创建一个Animal Lister的实例并从中获取Animal引用,那么我应该在哪里删除它?
int main() {
AnimalLister al;
Animal *a1, *a2;
a1 = al.getNewAnimal();
a2 = al.getNewAnimal();
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是AnimalLister没有办法跟踪动物创建的列表,所以我如何更改这些代码的逻辑以便有办法删除创建的对象.