相关疑难解决方法(0)

是否可以删除非新对象?

我有一个对象,其中包含指向其他对象的指针向量,如下所示:

class Object {
    ...
    vector<Object*> objlist;
    ...
};
Run Code Online (Sandbox Code Playgroud)

现在,对象将以这两种方式添加到列表中:

Object obj;
obj.objlist.push_back(new Object);
Run Code Online (Sandbox Code Playgroud)

Object name;
Object* anon = &name;
obj.objlist.push_back(anon);
Run Code Online (Sandbox Code Playgroud)

如果做一个简单的析构函数

~Object {
    for (int i = 0; i < objlist.size(); i++) {
        delete objlist[i];
        objlist[i] = NULL;
    }
}
Run Code Online (Sandbox Code Playgroud)

在尝试删除未使用new创建的对象时会不会产生任何不良后果?

c++ destructor memory-management new-operator

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

destructor ×1

memory-management ×1

new-operator ×1