【发布时间】:2013-02-01 08:13:38
【问题描述】:
我想知道默认类析构函数在被调用时是否真的做任何事情。
我一直在研究它,我发现如果我用一个调用它自己的析构函数的函数创建一个类,它根本不会做任何事情(即所有变量保持不变,实例仍然存在并且可用) .
这是否意味着类析构函数可以被认为是所有类都具有的继承虚函数,并且可以重新定义它(删除指针等并清除成员变量)但是如果不重新定义它'什么都不做?
如果是这样,析构函数不能本质上用作“清除所有数据”类型的函数,并通过清除动态内存分配的变量并重新使用它而不是让计算机在堆上找到一块新的内存?
谢谢。
【问题讨论】:
-
如果调用析构函数手动释放内存,如果对象随后被销毁会发生什么?我不确定您的目标是什么,但它可能更适合简单的成员函数。
-
这个问题的答案可能会有所帮助:stackoverflow.com/questions/1036019/…
-
考虑使用内存池或放置 new/delete 而不是这种优化。请记住:“过早的优化是万恶之源”。
标签: c++ destructor