ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## Smart_ptr库如何改进你的程序? * 使用`shared_ptr`进行对象的生存期自动管理,使得分享资源所有权变得有效且安全。 * 使用`weak_ptr`可以安全地观测共享资源,避免了悬挂的指针。 * 使用`scoped_ptr` 和 `scoped_array`限制资源的使用范围,使得代码更易于编写和维护,并有助于写出异常安全的代码。 智能指针解决了资源生存期管理的问题(尤其是动态分配的对象\[1\]). 智能指针有各种不同的风格。多数都有一种共同的关键特性:自动资源管理。这种特性可能以不同的方式出现:如动态分配对象的生存期控制,和获取及释放资源 (文件, 网络连接)。Boost的智能指针主要针对第一种情况,它们保存指向动态分配对象的指针,并在正确的时候删除这些对象。你可能觉得奇怪为什么这些智能指针 不多做一点工作。它们不可以很容易就覆盖所有资源管理的不同情况吗?是的,它们可以(在一定范围内它们可以),但不是没有代价的。通用的解决方案意味着更 高的复杂性,而对于Boost的智能指针,可用性比灵活性具有更高的优先级。但是,通过对可定制删除器的支持,Boost的最智能的智能指针(`boost::shared_ptr`)可以支持那些不是使用`delete`进行析构的资源。`Boost.Smart_ptr`的五个智能指针类型是专门特制的,适用于每天的编程中最常见的需求。 > \[1\] 因为泛型智能指针可以处理任何类型的资源。