1.容器在銷毀時,會自動幫你銷毀容器中所存儲的額對象。
2.當容器中對象是指針的時候,容器銷毀的時候,也會幫你銷毀容器中的對象-指針。
3.由于容器銷毀銷毀的只是指針值,而非指針所指對象。則會出現資源泄露
解決方法:
1.用智能指針auto_ptr,shared_ptr來代替指針。思想:用類對象來管理指針的創建銷毀。構造函數創建指針,析構函數銷毀指針所指對象。
2.顯示銷毀指針所指對象,使用for_each,結合函數對象。可以實現異常安全
注:剛看了<<effective stl>>條款8,里面說如果使用auto_ptr作為容器對象是愚蠢的行為。所以上面的方法1,用shared_ptr而不能用auto_ptr。
主要是因為auto_ptr在拷貝的時候有一個所有權的轉移。