在IDA中对一个类的成员函数进行查看的时候会发现有两种析构函数'scalar deleting destructor'和 'vector deleting destructor'。翻译成中文就是标量析构函数和矢量析构函数,我本人是第一次听说这种说法于是Google了一下。
void scalar_deleting_destructor(A* pa)
{
pa->~A();
A::operator delete(pa);
}
void vector_deleting_destructor(A* pa, size_t count)
{
for (size_t i = 0; i < count; ++i)
pa[i].~A();
A::operator delete[](pa);
}