以独立的语句将new对象置入智能指针
2017-03-20 19:06
218 查看
以独立的语句将newed对象置入智能指针:
processWidget(std::tr1::share_ptr<Widget>(new Widget) , priority());
我们在这使用对象管理式资源,却可能造成资源的泄露。
上面主要有3三件事情需要完成:
priority()
new Widget
share_ptr的构造函数
但是在C++中无法确定他们的调用顺序,于是可能出现下面这种:
new Widget
priority()
share_ptr的构造函数
万一priority的调用发生异常,由于还未置入share_ptr ,那么new Widget的指针会遗失,造成资源泄露。
因此最好以独立的语句将newed对象置入智能指针中:
std:tr1::share_ptr<Widget> p(new Widget); processWidget(p , priority())
参考:
Effective C++
相关文章推荐
- 读书笔记_Effective_C++_条款十七:以独立语句将new产生的对象置入智能指针
- C++中为什么需要将new对象通过独立语句置入智能指针
- 条款17 以独立语句将new对象置入智能指针
- Effective C++ Item 17 以独立语句将newed对象置入智能指针
- 条款17:以独立语句将NEWED对象置入智能指针
- 条款17:以独立语句将newed对象置入智能指针
- 【17】以独立语句将newed对象置入智能指针
- 条款17:以独立语句将newed对象置入智能指针
- 条款17 以独立的语句将newed对象置入智能指针
- [EffectiveC++]item17:以独立语句将newed对象置入智能指针
- Effective C++:条款17:以独立语句将newed对象置入智能指针
- Effective C++——》条款17:以独立语句将newed的对象置入智能指针
- [翻译] Effective C++, 3rd Edition, Item 17: 在 standalone statements(独立语句)中将 new 出来的 objects(对象)存入 smart pointers(智能指针)
- effective c++ 条款17 :以独立语句将newed 对象置入智能指针
- effective C++ 条款 17:以独立语句将newed对象置入智能指针
- 条款17以独立语句将newed对象置入智能指针
- 条款17:以独立语句将newed对象置入智能指针
- 《Effective C++》学习笔记条款17 以独立语句将newed对象置入智能指针
- [Effective C++ --017]以独立语句将newed对象置入智能指针
- Effective C++ 条款17 以独立语句将newed对象置入智能指针