现在的位置: 首页 > 综合 > 正文

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

2013年02月26日 ⁄ 综合 ⁄ 共 471字 ⁄ 字号 评论关闭

条款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对象存储于(置入)智能指针内。如果不这样做,一旦异常抛出,有可能导致难以察觉的资源泄漏。   
【上篇】
【下篇】

抱歉!评论已关闭.