effective C++ 条款十七解读

来源:互联网 发布:install ubuntu 编辑:程序博客网 时间:2024/06/06 03:52

以独立的语句讲newed对象放入智能指针

用下面一段代码来解释:

int priority();processWidget(shared_ptr(new Widget),priority());shared_ptr pWid=new Widget();
processWidget(pwid,priority());

上面第一段代码存在的问题主要是代码在调用函数processWidget的时候调用顺序可能是以下这种情况:

1.new widget

2.priority()函数

3.把new widget放到shared_ptr之中。

当priority函数抛出异常的时候,那么资源就造成了泄露,所以需要我们采用第二种方式以独立的语句讲newed对象放入智能指针



原创粉丝点击