我在程序的一个地方通过 new 创建对象(我们称它们为演员)。这些对象通过它们的指针传递给另一个对象(我们称之为弹丸)。在任何时候,演员对象都可以在射弹之外被删除。删除并设置为 NULL 会发生这种情况。然而,它的一个指针仍在弹丸中。我确实检查了 if != NULL 但它通过了这些检查。类中的值都是伪造的,但指针本身不是 NULL。
我需要做一个指向指针的指针吗?我只是想如果我传递一个指针并在某个时候删除并将该指针设置为NULL,我传递的所有其他地方也会显示NULL。
您可能应该研究智能指针,例如std::shared_ptr
.
您是否考虑过双重间接?
Actors
:std::map<unsigned, Actor>
Actor
ID 存储在射弹中现在,假设一个单调递增的 ID(您有大约 40 亿个可用的 ID,应该让您继续使用一段时间),地图中缺少的 ID 意味着Actor
消失(被删除)。