首页 > 代码库 > 关于智能指针
关于智能指针
对share_ptr,属于强引用型的智能指针。内部通过引用计数实现对对象的管理,在引用计数为0时,自动释放对象。使用share_ptr的缺点是:会造成对象的循环引用,导致对象永远无法释放,比如:
Share_ptr可以在多线程中使用,确保指针指向的对象是有效的。
Weak_ptr是弱引用性的智能指针。Weak_ptr不对造成对象的引用技术的增加。因此不会造成对象的循环引用,weak_ptr可以通过引用计数或者 成员函数expired来判断对象是否已经释放。在访问对象时。但是在使用时需要把weak_ptr转换为share_ptr指针比如:
shared_ptr<string> sp (new string("code")); cout<<*sp<<endl; weak_ptr<string> wp = sp; cout<<wp.use_count()<<endl; cout<<wp.lock()->c_str()<<endl; shared_ptr<string> tempsp(wp); cout<<wp.use_count()<<endl; cout<<*tempsp<<endl;
关于智能指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。