我在想,如果默认的类析构函数在被调用时实际上做了什么。做默认析构函数做什么?
我一直在研究它,我发现如果我用一个调用它自己的析构函数的函数创建一个类,它根本不会做任何事情(即所有变量都保持不变,并且实例仍然存在并且可用)。
这是否意味着类的析构函数可以被认为是所有类都具有的继承的虚函数,并且可以重新定义它(删除指针等并清除成员变量),但是如果不重新定义它什么都不做?
如果是这样,不能将析构函数实质上用作“清除所有数据”类型的函数,并通过清除动态内存分配变量并重新使用它而不是获取计算机来使代码的某些部分更有效在堆上找到新的内存块?
谢谢。
如果调用析构函数手动释放内存,如果该对象被破坏,然后会发生什么?我不确定你的目标是什么,但它可能更适合简单的成员函数。 – Bingo 2013-02-16 12:24:51
回答这个问题可能会有所帮助:HTTP://stackoverflow.com/questions/1036019/does-calling-a-destructor-explicitly-destroy-an-object-completely – 2013-02-16 12:30:31
考虑使用内存池或放置新/删除,而不是这种优化。请记住:“不成熟的优化是万恶之源”。 – doc 2013-02-16 13:08:02