1.容器在銷毀時(shí),會(huì)自動(dòng)幫你銷毀容器中所存儲(chǔ)的額對(duì)象。
2.當(dāng)容器中對(duì)象是指針的時(shí)候,容器銷毀的時(shí)候,也會(huì)幫你銷毀容器中的對(duì)象-指針。
3.由于容器銷毀銷毀的只是指針值,而非指針?biāo)笇?duì)象。則會(huì)出現(xiàn)資源泄露
解決方法:
1.用智能指針auto_ptr,shared_ptr來代替指針。思想:用類對(duì)象來管理指針的創(chuàng)建銷毀。構(gòu)造函數(shù)創(chuàng)建指針,析構(gòu)函數(shù)銷毀指針?biāo)笇?duì)象。
2.顯示銷毀指針?biāo)笇?duì)象,使用for_each,結(jié)合函數(shù)對(duì)象??梢詫?shí)現(xiàn)異常安全
注:剛看了<<effective stl>>條款8,里面說如果使用auto_ptr作為容器對(duì)象是愚蠢的行為。所以上面的方法1,用shared_ptr而不能用auto_ptr。
主要是因?yàn)閍uto_ptr在拷貝的時(shí)候有一個(gè)所有權(quán)的轉(zhuǎn)移。