《Effective C++》学习笔记条款17 以独立语句将newed对象置入智能指针

本文介绍了在C++中如何安全地使用智能指针来管理new分配的对象,以避免资源泄漏的风险。通过独立语句初始化智能指针可以有效防止异常抛出时可能导致的资源泄漏。

条款17:以独立语句将newed对象置入智能指针

       为了避免资源泄漏的危险,最好在单独语句内以智能指针存储newed所得对象。
       
即:
    

       int priority();
    

       void processWidget(std::tr1::shared_ptr<Widget> pw, int priority);

       std::tr1::shared_ptr<Widget> pw(newWidget);    //即在传入函数之前对智能指针初始化,而不是在传入参数中                                                                              

                                                                                    //对其初始化,因为那样可能引起操作序列的问题。
        processWidget(
pw, priority()); 
 
   

       请记住:

  • 以独立语句将newed对象存储于(置入)智能指针内。如果不这样做,一旦异常抛出,有可能导致难以察觉的资源泄漏。   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ccwRadar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值