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

来源:互联网 发布:鼠标测试软件 编辑:程序博客网 时间:2024/06/05 17:14

条款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对象存储于(置入)智能指针内。如果不这样做,一旦异常抛出,有可能导致难以察觉的资源泄漏。   
1 0
原创粉丝点击