NULL与nullptr的二义性问题

在编程逻辑世界,有因必有果,如果一个结果含糊不定(二义性),显然是我们不想要的。C++11中引入nullptr是为了解决NULL的二义性问题。

NULL二义性的体现

当函数调用func(NULL)时会是怎样执行?

先看C++对NULL的定义:

我们可以看到C++的NULL被宏定义为0,所以函数会因为NULL为0而导致调用函数,这是我们不想要的结果。

那怎么解决问题呢?

使用nullptr(空指针常量),当函数调用时则会调用函数。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190912A0QFCS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券