NULL和nullptr的区别

发布时间:2020-08-11 15:24:21 作者:蚂蚁雄心
来源:网络 阅读:777


指定 std::nullptr_t 类型的 null 指针常量,该类型可转换为任何原始指针类型。尽管您可以使用关键字 nullptr 而不包含任何标头,但如果您的代码使用类型 std::nullptr_t,则您必须通过包含标头 <cstddef> 来定义该类型。请避免将 NULL 或零 (0) 用作 null 指针常量;nullptr 不仅不易被误用,并且在大多数情况下使用效果更好。例如,给定 func(std::pair<const char *, double>),那么调用 func(std::make_pair(NULL, 3.14)) 会导致编译器错误。宏NULL将扩展为0,以便调用make_pair(0, 3.14) 将返回 std::pair<int, double>,此结果不可转换为 func() 的 std::pair<const char *, double> 参数类型。调用 func(std::make_pair(nullptr, 3.14)) 将会成功编译,因为make_pair(nullptr, 3.14) 返回 pair<std::nullptr_t, double>,此结果可转换为 pair<const char *, double>。


 

class XYCombineRecord: public Node
{
public:
 XYCombineRecord():
  m_imgIndex(0)
  ,m_displayMode(DISPLAY_MODE_NORMAL)
  ,callback(NULL){};   //编译失败
 CREATE_FUNC(XYCombineRecord);
 std::function<void(XYCombineRecord* ,PlayLayer*)> callback;

 

class XYCombineRecord: public Node
{
public:
 XYCombineRecord():
  m_imgIndex(0)
  ,m_displayMode(DISPLAY_MODE_NORMAL)
  ,callback(nullptr){}; //编译成功
 CREATE_FUNC(XYCombineRecord);
 std::function<void(XYCombineRecord* ,PlayLayer*)> callback;


推荐阅读:
  1. nil和null的区别
  2. javascript中undefined和null有哪些区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

null和nullptr的区别 lp

上一篇:ERP系统协助企业实现项目一体化管理

下一篇:MemoryCache问题修复怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》