【发布时间】:2009-10-28 16:34:25
【问题描述】:
我在处理现有库时遇到了一个奇怪的析构函数用法。当可能需要再次使用该对象时,显式调用了堆栈分配的 stl 向量的析构函数。这些向量对象是 stl 向量类的稍微定制的版本,具有专门的clear 方法。在析构函数体中存在两个方法调用:clear()、_Tidy()。
我一直在想一个很好的理由,为什么要调用这个析构函数,而不仅仅是 clear,但我不知所措。任何人都解释了为什么这可能是一个好主意?
【问题讨论】:
-
你能提供一个代码示例,向量 dtor 以及它是如何调用的吗?
-
向我们展示向量是如何创建的。
-
向量是使用默认构造函数通过一个简单的声明创建的。 _Tidy() 据我所知释放内存。一个例子:CustomVector
向量; ...稍后的向量。~CustomVector(); -
"向量是使用默认构造函数创建的,通过一个简单的声明。"如果是这样(我想你的意思是 definition),那么显式调用它的 dtor 应该有很好的理由并且非常小心。
标签: c++ stl destructor