小编bib*_*tha的帖子

在C++中返回对象

从类中返回对象时,何时是释放内存的正确时间?

例,

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没有办法跟踪动物创建的列表,所以我如何更改这些代码的逻辑以便有办法删除创建的对象.

c++ memory-management factory

34
推荐指数
5
解决办法
2万
查看次数

标签 统计

c++ ×1

factory ×1

memory-management ×1