2013-06-27 100 views
4

我是通過升壓日期時間庫here,其中含有大量的例子,如這一個閱讀:爲什麼這個time_zone_ptr示例不包含內存泄漏?

time_zone_ptr zone(new posix_time_zone("MST-07")); 

我很好奇,爲什麼使用關鍵字「新」不會導致內存泄漏? 我調查了boost源代碼,並注意到它有兩個不同版本的構造函數,一個使用shared_ptr,另一個使用weak_ptr。有人可以解釋這些如何工作,以及爲什麼上面的行是安全的寫?

回答

7

time_zone_ptr只是boost::shared_ptr<time_zone>的別名。這是一個智能指針,其中從其構建的原始指針獲取動態分配對象的所有權

相關問題