在一个对象中有一个 vector 并带有指向它的指针列表会很聪明吗?
这样当对象被删除时,它可以删除所有指向它的指针以防止空指针异常?
最佳答案
不,绝对不是。您只能删除指向某物的指针一次;释放已经被删除的东西(“双重释放”)是未定义的
A* foo = new A();
A* bar = foo;
delete foo;
delete foo; // <-- BAD
delete bar; // <-- EQUALLY BAD
听起来您正在寻找类似 auto_ptr 的内容;你可能想调查一下。如果你希望在对象被销毁时将所有指向你的对象的指针归零,那是不可能的
关于c++ - 指针安全对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721263/