跟踪哈希工厂对象
Keeping track of Hash Factory Objects
我有一个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?
看情况。
-
如果这是你自己的类在你自己的项目你是确实负责删除内存是由你调用create()(或foo())分配。
-
如果这是一个你已经创建的库类,并且你已经很好地记录了,那么你的库代码的调用者将负责删除调用foo()创建的内存
无论哪种方式,您都必须把事情弄清楚,并记录或实现适当的内存管理。
相关文章:
- 使用Unique_ptr确保工厂中的对象唯一
- 注册对对象工厂的调用会导致段错误
- 确保在编译期间仅同时使用来自同一工厂的对象
- C++具有内置缓存 - 阴影模板参数的对象工厂
- 工厂方法创建的对象应该在哪里删除?
- 从类模板创建对象的工厂函数模板?
- 如何创建行为类似于流对象的工厂
- 共享对象工厂的设计模式
- C 中的对象工厂词典
- C 非堆工厂对象创建具有受保护的构造函数和复制构造函数
- 对象工厂和这个指针
- 按字符串名称C++泛型对象工厂
- 对象工厂用于重载函数
- 用C代替c++的对象工厂
- 自定义对象工厂
- c++中的对象初始化和对象工厂
- 试图在对象工厂中引用已删除的函数
- 通过元编程或其他方式自动注册dll模块中的静态对象工厂
- 具有不同参数的对象工厂
- C++:如何为运行时模板参数创建对象工厂