指针在删除对象时自动为null

Bra*_*don 3 c++ pointers

假设我在一些不同类类型的其他对象中有一个对象和10个指针.如果删除对象,则必须将这些指针设置为null.通常我会将对象的类与具有指针的类互连,以便它可以通知它们它被删除,并且可以将它们的指针设置为null.但是这也有负担,当类被删除时类也必须通知对象,因为对象也需要指向它们的指针.这样,当对象破坏并尝试通知其他对象时,该对象不会将取消引用称为悬空指针.

我不喜欢这个混乱的废话网,我正在寻找一个更好的方法.

请注意,自动指针和共享指针不是我正在寻找的 - 自动指针在它们销毁时删除它们的对象,并且当没有更多的共享指针指向它时,共享指针也会这样做.我正在寻找的是一个灵活的方法,用于在对象析构时将对象的所有指针设置为null.

Ben*_*igt 8

"计算机科学中的所有问题都可以通过另一层次的间接解决" - 大卫惠勒

在你的情况下,什么将工作得很好

std::shared_ptr<Object*> pp.
Run Code Online (Sandbox Code Playgroud)

删除对象时,将共享设置Object*为null(例如*pp = 0;).所有其他用户都在共享Object*,现在将看到它已变为null.当所有用户都离开后,用于Object*自身的内存也将被释放.