删除存储了多个引用的指针
deleting pointers with multiple references stored
我在程序中的一个位置通过new创建对象(让我们称它们为actor)。这些对象通过指针传递给另一个对象(我们称之为抛射体)。在任何时候,演员对象都可以在抛射体之外删除。删除并设置为NULL。然而,它的一个指针仍然在炮弹中。我检查一下NULL,但它通过了这些检查。类中的值都是假的,但指针本身不是NULL。
我需要做一个指向指针的指针或其他什么吗?我只是想,如果我传递了一个指针,在某个时候删除了它,并将该指针设置为NULL,那么我传递的所有其他地方也会显示为NULL。
您可能应该研究智能指针,如std::shared_ptr
。
你想过双重间接寻址吗?
- 使用
Actors
:std::map<unsigned, Actor>
的映射 - 仅在射弹中存储
Actor
ID
现在,假设一个单调增加的ID(你有大约40亿个可用的ID,应该会让你坚持一段时间),一个ID不在地图上意味着Actor
消失了(被删除了)。
相关文章:
- C++取消引用指针.为什么会发生变化
- 深层复制具有自引用指针的类
- Visual c ++,使用字符串引用/指针调用 dll 函数
- std::unordered_map::提取引用/指针失效
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 区分接受常量参数的函数引用/指针和与函数参数同名的非常量参数
- 如何在 c++ 中使用带有数学运算的引用/指针?
- 了解通过引用传递取消引用指针时C++堆/堆栈分配
- 取消引用指针并立即为其分配变量,导致分段错误
- 如何获取指向类(而不是对象)的引用/指针
- 将类型参数传递给自引用指针
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 在析构函数内取消引用指针时出现分段错误
- 来自引用指针的内存泄漏
- 引用指针后面的值
- 无法取消引用指针
- 引用指针调用成员函数
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- 取消引用指针以创建数组的副本
- 有关启动引用指针的引用的问题