温馨提示×

温馨提示×

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

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

NULL和nullptr的区别

发布时间:2020-08-11 15:24:21 来源:网络 阅读:776 作者:蚂蚁雄心 栏目:开发技术


指定 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;


向AI问一下细节

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

AI