讀書筆記《Effective c++》 條款13 以對象管理資源

所謂資源就是,一旦用了它,將來必須還給系統。


本書出版較早,所以書中介紹的是auto_ptr和tr1::shared_ptr,而在現在c++11中完善了原來的auto_ptr,增加了幾種智能指針,這方面資料很多,這裏只引用別人的一篇文章:

http://blog.csdn.net/zy19940906/article/details/50470087


智能指針就是所謂的RAII“資源獲得及初始化”,也就是每筆資源在獲得的同事立刻被放進管理對象中,這樣的好處是當離開資源的作用域後,智能指針會自動釋放資源,而不需要管在函數是否提前return之類的事情。


補充:

  關於new,delete,new[],delete[],關鍵是要配對使用,new[]然後用delete釋放在有些情況下不會有問題(這裏不介紹了),但是,還是不要這麼做,找了篇文章講的比較詳細了:

http://blog.csdn.net/hazir/article/details/21413833


所以如果是指向數組的shared_ptr,一定要提供delete函數,否則就和用new[]然後用delete釋放一個效果了。

unique_ptr不一樣,它直接就支持數組類型,可以直接寫成unique_prt<Test[]>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章