什么是智能指针,什么时候应该使用?
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
智能指针是类似指针的类型,具有一些附加功能,例如自动内存释放,引用计数等。
小型介绍可在页面上找到智能指针 - 什么,为什么,哪个?。
其中一个简单的智能指针类型是std::auto_ptr
(C ++标准的第20.4.5节),它允许在超出范围时自动释放内存,并且在抛出异常时比简单指针使用更强大,尽管灵活性较低。
另一个方便的类型是boost::shared_ptr
实现引用计数,并在没有对象的引用时自动释放内存。这有助于避免内存泄漏,并且易于使用来实现RAII。
题目在David Vandevoorde,Nicolai M. Josuttis,第20章,智能指针的书“C ++模板:完整指南”中有详细介绍。涉及的一些主题:
防范异常
持有者,(注意,std :: auto_ptr是这种智能指针的实现)
资源获取是初始化(这经常用于C ++中的异常安全资源管理)
持有人限制
并发计数器访问
破坏和解除分配
- 3 回答
- 0 关注
- 1216 浏览
添加回答
举报
0/150
提交
取消