您的位置:首页 > 其它

Boost之smart_ptr

2018-02-09 15:27 183 查看
如果对象是用声明的方式在栈上创建的( 一个局部对象),那么RAII机制会工作正常,当离开作用域时对象会自动销毁从而调用析构函数释放资源。但如果对象是用new操作符在堆上创建的,那么它的析构函数不会自动调用,程序员必须明确地用对应的 delete 操作符销毁它才能释放资源,这非常容易造成内存泄漏的问题,所以Boost提供了6种智能指针用于解决这种问题,包括scoped_ptr、scoped_array、shared_ptr 、 shared_array 、weak_ptr和 intrusive_ptr 。它们是轻量级的对象,速度与原始指针相差无几,都是异常安全的 (exception safe) ,而且对于所指向的类型T也仅有一个很小且很合理的要求:类型T的析构函数不能抛出异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: