条款17:以独立语句将newed对象置入智能指针
即:
void processWidget(std::tr1::shared_ptr<Widget> pw,
int priority);
std::tr1::shared_ptr<Widget> pw(newWidget); //即在传入函数之前对智能指针初始化,而不是在传入参数中
//对其初始化,因为那样可能引起操作序列的问题。
processWidget(pw, priority());
请记住:
- 以独立语句将newed对象存储于(置入)智能指针内。如果不这样做,一旦异常抛出,有可能导致难以察觉的资源泄漏。
本文介绍了在C++中如何安全地使用智能指针来管理new分配的对象,以避免资源泄漏的风险。通过独立语句初始化智能指针可以有效防止异常抛出时可能导致的资源泄漏。
1564

被折叠的 条评论
为什么被折叠?



