摘要: 刪除一個(gè)動(dòng)態(tài)分配的對(duì)象時(shí),必須調(diào)用它的析構(gòu)函數(shù)。如果這個(gè)類(lèi)型是不完整的,即只有聲明沒(méi)有定義,那么析構(gòu)函數(shù)可能會(huì)沒(méi)被調(diào)用。這是一種潛在的危險(xiǎn)狀態(tài),所以應(yīng)該避免它。對(duì)于類(lèi)模板及函數(shù)模板,風(fēng)險(xiǎn)會(huì)更大,因?yàn)闊o(wú)法預(yù)先知道會(huì)使用什么類(lèi)型。使用 checked_delete 和 checked_array_delete, 可以解決這個(gè)刪除不完整類(lèi)型的問(wèn)題。它沒(méi)有運(yùn)行期的額外開(kāi)銷(xiāo),只是直接調(diào)用 delete, 因此說(shuō) checked_delete 帶來(lái)的安全性實(shí)際上是免費(fèi)的。
如果你需要在調(diào)用delete時(shí)確保類(lèi)型是完整的,就使用 checked_delete 。
閱讀全文
摘要: 函數(shù)對(duì)象與高級(jí)編程 學(xué)習(xí)
閱讀全文