4

我在这里阅读了 boost DateTime 库,其中包含很多示例,例如:

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

我很好奇为什么使用关键字“new”不会导致内存泄漏?我研究了 boost 源代码,发现它有两个不同版本的构造函数,一个带有 shared_ptr,另一个使用 weak_ptr。有人可以解释这些是如何工作的,以及为什么上面的行可以安全写吗?

4

1 回答 1

7

time_zone_ptr只是boost::shared_ptr<time_zone>. 这是一个智能指针,它从构造它的原始指针获取动态分配对象的所有权

于 2013-06-27T21:36:54.410 回答