12.1.6练习

weak_ptr<T> w;   //定义一个空的weak_ptr
weak_ptr<T> w(sp);   //定义一个weak_ptr并与shared_ptr绑定  这个操作不会增加计数器
w=p;   //给weak_ptr赋值  此操作不会增加p的计数器
w.reset();  //将 weak_ptr置空
w.use_count(); // 获取与weak_ptr绑定的共享指针的  计数器的值
w.expired();  //判断weak_ptr绑定的对象是否还有效   有效返回true  无效返回false
w.lock();  //  如果expierd为true即绑定的 shared_ptr还有效就返回这个共享对象的shared_ptr。反之返回空指针

一段代码:

auto p = make_shared<int>(42);
weak_ptr<int> wp = p;
if(shared_ptr<int> np = wp.lock()){ //如果绑定的shared_Ptr还有效  进入if
    //在if中  np与p共享对象
}

上述代码  让我想起了遗忘多年的 if判断语句   也反映出来 多年的无所谓的学习心态说导致的严重后果。

if(a=b);
if(a+b);

练习12.19:定义你自己版本的StrBlobptr,更新StrBlob类,加入恰当的friend声明及begin和end成员。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值