专栏首页C++核心准则原文翻译C++核心准则C.149:使用unique_ptr或者shared_ptr避免忘记销毁使用new创建的对象

C++核心准则C.149:使用unique_ptr或者shared_ptr避免忘记销毁使用new创建的对象

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
  • 标记销毁局部变量的情况。

原文链接:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c149-use-unique_ptr-or-shared_ptr-to-avoid-forgetting-to-delete-objects-created-using-new


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则R.20: 使用unique_ptr或者shared_ptr表示所有权

    This will leak the object used to initialize p1 (only).

    面向对象思考
  • C++核心准则ES.84:不要定义无名局部变量

    ES.84: Don't try to declare a local variable with no name

    面向对象思考
  • C++核心准则边译边学-摘要

    This document is a set of guidelines for using C++ well. The aim of this documen...

    面向对象思考
  • win10 uwp 获得缩略图 文件缩略图视频小图

    有时候需要获得文件或视频的缩略图。 本文提供两个方法,用于获得文件的缩略图和截取视频指定时间的显示图片。

    林德熙
  • C++核心准则:R.13: 在一个表达式中最多只执行一次显式资源分配

    If you perform two explicit resource allocations in one statement, you could lea...

    面向对象思考
  • python3--元组(tuple),列表(list),字典dict,其它(for,enumerate,range)

    元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组

    py3study
  • 什么是网络爬虫,每天都在忙乎什么?(下篇)

    上篇文章中提到我成功到达了B站服务器,并且成功拿到了所需要的Cosplay图片,但是除了图片之外还有一些其他内容,带着很多疑问我开着车以光速回家了。

    张叔叔讲互联网
  • 在 jQuery Mobile 中使用 UI 组件

    jQuery Mobile JavaScript 库是一种强大的方式,允许用户通过 Web 浏览器直接连接到触摸友好的应用程序,从而让移动和平板设备可以访问移动...

    用户7293182
  • Java之写文件

    java之写文件 上一篇写了java读取文件的各种操作姿势,这里也补一个写文件的工具类,比较简单 1. 读写类介绍 (和上一篇差不多) java读写文件的I...

    一灰灰blog
  • TiKV 源码解析系列文章(二)raft-rs proposal 示例情景分析

    本文为 TiKV 源码解析系列的第二篇,按照计划首先将为大家介绍 TiKV 依赖的周边库 raft-rs 。raft-rs 是 Raft 算法的 Rust 语言...

    PingCAP

扫码关注云+社区

领取腾讯云代金券