0

我在程序的一个地方通过 new 创建对象(我们称它们为演员)。这些对象通过它们的指针传递给另一个对象(我们称之为弹丸)。在任何时候,演员对象都可以在射弹之外被删除。删除并设置为 NULL 会发生这种情况。然而,它的一个指针仍在弹丸中。我确实检查了 if != NULL 但它通过了这些检查。类中的值都是伪造的,但指针本身不是 NULL。

我需要做一个指向指针的指针吗?我只是想如果我传递一个指针并在某个时候删除并将该指针设置为NULL,我传递的所有其他地方也会显示NULL。

4

2 回答 2

5

您可能应该研究智能指针,例如std::shared_ptr.

于 2012-09-08T13:18:10.810 回答
1

您是否考虑过双重间接?

  1. 使用以下地图Actorsstd::map<unsigned, Actor>
  2. 仅将ActorID 存储在射弹中

现在,假设一个单调递增的 ID(您有大约 40 亿个可用的 ID,应该让您继续使用一段时间),地图中缺少的 ID 意味着Actor消失(被删除)。

于 2012-09-08T13:41:59.140 回答