专栏首页C++核心准则原文翻译C++核心准则ES.47: 使用nullptr表现空指针,而不是0或NULL​

C++核心准则ES.47: 使用nullptr表现空指针,而不是0或NULL​

ES.47: Use nullptr rather than 0 or NULL

而不是ES.47: 使用nullptr表现空指针,而不是0或NULL

Reason(原因)

Readability. Minimize surprises: nullptr cannot be confused with an int. nullptr also has a well-specified (very restrictive) type, and thus works in more scenarios where type deduction might do the wrong thing on NULL or 0.

可读性。最小化意外性。nullptr不会混同于整数。同时nullptr具有良好定义(非常严格的)的类型,很多情况下使用NULL或0会导致类型推断出错,但使用nullptr就不会。

Example(示例)

Consider:

考虑以下代码:

void f(int);
void f(char*);
f(0);         // call f(int)
f(nullptr);   // call f(char*)
Enforcement(实施建议)

Flag uses of 0 and NULL for pointers. The transformation may be helped by simple program transformation.

标记使用0或者NULL表现指针的情况。这种变换可以或许可以通过简单的程序进行。

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

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

原始发表时间:2020-05-14

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则C.44:默认构造函数最好简单而且不会抛出异常

    C.44: Prefer default constructors to be simple and non-throwing

    面向对象思考
  • C++核心准则ES.64:使用T{e}记法构造对象

    The T{e} construction syntax makes it explicit that construction is desired. The...

    面向对象思考
  • C++核心准则ES.103​:防止溢出​

    Overflow usually makes your numeric algorithm meaningless. Incrementing a value ...

    面向对象思考
  • 为什么建议你用nullptr而不是NULL?

    在C语言中,我们常常用NULL作为指针变量的初始值,而在C++中,却不建议你这么做。

    编程珠玑
  • linux命令使用方法

    在虚拟机软件的菜单栏中一次选择“虚拟机->设置->选项->共享文件夹”,在右侧选启用或在下次电源关闭或挂起前启用,点击下面的添加,下一步,在主机路径中选中win...

    用户1396155
  • 腾讯云标准型S4实例配置性能使用场景及注意事项

    腾讯云标准型实例是计算、内存和网络资源的均衡,InstanceTypes分享腾讯云标准型S4实例配置性能包括CPU、内存、使用场景及购买注意事项等信息:

    用户2416682
  • 每日打卡 373. 查找和最小的K对数字

    题目告诉你 2个有序数组,求top k 不是 从2个有序数组获取一个记录就可以了。

    程序员小王
  • POJ--Strange Way to Express Integers

    Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K ...

    Gxjun
  • 力扣LeetCode,两个数组的交集

    别先生
  • Laravel框架查询构造器简单示例

    砸漏

扫码关注云+社区

领取腾讯云代金券