解構函式的標量與向量?

Ox9A82發表於2016-08-05

在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);
}

 

相關文章