删除使用new关键字创建的对象

时间:2016-01-18 12:17:15

标签: c++

我有一个班级:

class temp
{
public:
    int id;
};

每当我们收到用户的命令时,我都会使用temp *obj = new temp();为这个类创建对象。命令是字符串形式,由我们将附加到obj->id的id组成。我也有一个存储临时类对象的数组:

temp* array[30];

如果我收到用户的删除命令,我想删除此对象。我怎么能删除它?如果我收到用户的删除命令,是否足以执行delete obj

1 个答案:

答案 0 :(得分:2)

这取决于您访问和使用对象的方式。您应该通过在为“new”分配的对象的内存上调用“delete”来自行清理,但是只有在完成对象完成后才能这样做。

您还必须清理对您创建的对象的引用。

例如,如果要动态分配和删除对象并继续使用temp * array [30],则需要确保永远不要取消引用array [n]中指向已删除对象的指针。

因此删除对象通常是不够的;您还必须删除对该对象的所有引用,或确保它们永远不会被调用。

标准模板对于这种内存管理比原始数组更有用。