【发布时间】:2012-04-14 20:19:13
【问题描述】:
我有一个名为SpriteX 的类,它基本上是一个通用精灵。我还有一个名为_Drawables 的类,它有一个成员std::vector<SpriteX*>。在main() 中,我创建的每个精灵都可以插入到_Drawables 容器中,然后可以调用drawAll() 方法来绘制std::vector 中的所有SpriteX 对象。
每个SpriteX 对象都知道指向自身的指针所在的索引,并在其析构函数中设置指向NULL 的指针。但我想完全销毁指针,而不仅仅是将其设置为NULL。但是删除指针安全吗?如果我在析构函数中使用delete,并调用析构函数,会导致循环吗?有什么办法可以释放内存。
【问题讨论】:
-
旁注:名称
_Drawables在C++中是非法的;你应该重命名那个类。以下划线 + 大写字母开头的名称保留用于实现。
标签: c++ pointers memory-management