跟踪哈希工厂对象

Keeping track of Hash Factory Objects

本文关键字:对象 工厂 哈希 跟踪      更新时间:2023-10-16

我有一个hashfactory返回一个动态分配的对象。

Item * Class::foo()
{
   int subscript = hash(someKey);
   return factory[subscript]->create();
}
//function create() is an overridden function in an inherited class that returns Item *
Item *SomeClass::create()
{
   return new SomeClass();
}

为了让我不要有内存泄漏,我是否必须确保每个指针触及这最终被分配给NULL和最后的指针,是保持跟踪它被删除,然后设置为NULL?

看情况。

  1. 如果这是你自己的类在你自己的项目你是确实负责删除内存是由你调用create()(或foo())分配。

  2. 如果这是一个你已经创建的库类,并且你已经很好地记录了,那么你的库代码的调用者将负责删除调用foo()创建的内存

无论哪种方式,您都必须把事情弄清楚,并记录或实现适当的内存管理。