內(nèi)存訛誤(memory corruption):內(nèi)存泄漏、過(guò)早的刪除操作
C++針對(duì)這兩種問(wèn)題提供了解決方案:引用計(jì)數(shù)(reference counting),基本思想是:
將銷(xiāo)毀對(duì)象的職責(zé)從客戶(hù)端代碼轉(zhuǎn)移到對(duì)象本身。對(duì)象跟蹤記錄自身當(dāng)前被引用的數(shù)目,在引用計(jì)數(shù)達(dá)到零時(shí)自行銷(xiāo)毀。
總結(jié):下面任意一種情況都可以是引用計(jì)數(shù)變的更為有效
a. 目標(biāo)對(duì)象是很大的資源消費(fèi)者
b. 資源分配和釋放的代價(jià)很高
c. 高度共享:由于使用賦值操作和拷貝構(gòu)造函數(shù),引用計(jì)數(shù)的性能可能會(huì)很高
d. 創(chuàng)建和銷(xiāo)毀引用的代價(jià)低廉
反之,則應(yīng)跳出引用計(jì)數(shù)而使用更加有效地簡(jiǎn)單非計(jì)數(shù)對(duì)象