c++ - 从类中删除指向 this 的指针?

标签 c++ pointers memory-management

我有一个类叫做 SpriteX这基本上是一个通用的 Sprite 。我还有一个名为 _Drawables 的类(class)其中有一个成员 std::vector<SpriteX*> .在 main()我创建的每个 Sprite 都可以插入到 _Drawables 中容器,然后可以调用 drawAll()绘制所有SpriteX的方法std::vector 中的对象.

每个SpriteX object 知道指向自身的指针位于哪个索引,并且在其析构函数中,它将指针设置为 NULL .但我想彻底销毁指针,而不是将其设置为 NULL .但是删除指针安全吗?如果我使用 delete在析构函数中调用析构函数,这会导致循环吗?有没有办法释放内存。

最佳答案

If I use delete in the destructor and that calls the destructor, would that cause a loop?

是的,这可能会导致堆栈溢出和崩溃。

但是你不需要这样做,因为如果你在析构函数中,你已经在删除内存了,对吧? (比如,我希望你没有明确调用析构函数)

关于c++ - 从类中删除指向 this 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157055/

相关文章:

C++ 中的 java "this"

c - "malloc(sizeof(struct a *))"和 "malloc(sizeof(struct a))"是一样的吗?

haskell - 如何在常量内存中获取 make stats

r - 在 R 中处理大量数据和大量栅格?

c++ - 通过返回的指针填充私有(private)域

C++:在构造函数调用中作为参数创建的动态分配对象会发生什么情况?

c++ - 警告匿名命名空间在结构内部使用函数指针

c++ - 如何在不使用Visual Studio的情况下用C++制作Win32应用程序?

c# - HashTable、Array、ArrayList、LinkedList 等的空间复杂度是多少(如果还有的话)

c - C 中半已知输入的指针与数组