c++ - 指针安全对象?

标签 c++ pointers

在一个对象中有一个 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/

相关文章:

C++继承方法调用基类的方法而不是重载方法

c++ - 如何在 Crypto++ 中使用自定义 key

c++ - 为 float 类型重载 operator%

c++ - 匹配多种类型以进行模板特化解析

c++ - C++中的函数指针歧义

c - 直接给 C 指针赋值

android - C++ 段错误输出

c - C 中的指针导致未知的随机字符

c - C 中的指针和 typedef

C++ typeid(x).name() 返回 ph