C.149: Use unique_ptr or shared_ptr to avoid forgetting to delete objects created using new
C.149:使用unique_ptr或者shared_ptr避免忘记销毁使用new创建的对象
Reason(原因)
Avoid resource leaks.
避免资源泄露。
Example(示例)
void use(int i)
{
auto p = new int {7}; // bad: initialize local pointers with new
auto q = make_unique<int>(9); // ok: guarantee the release of the memory-allocated for 9
if (0 < i) return; // maybe return and leak
delete p; // too late
}
Enforcement(实施建议)
- Flag initialization of a naked pointer with the result of a new
- 提示使用new的结果初始化裸指针的情况。
- Flag delete of local variable
- 标记销毁局部变量的情况。
阅读更多更新文章,请关注微信公众号【面向对象思考】