C++11 新特性

本文介绍了C++11中的新特性,特别是关于指针的变化。 nullptr 作为新的空指针关键字,解决了NULL和0的二义性问题。智能指针包括shared_ptr、unique_ptr和weak_ptr,它们提供了自动内存管理的功能。shared_ptr支持引用计数,允许多个指针指向同一对象,但需注意避免循环引用。unique_ptr确保对象的唯一拥有,防止拷贝。weak_ptr则作为一个观察者,不增加引用计数,可用于打破循环引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、指针、智能指针(nullptr、shared_ptr、std::weak_ptr)

(1)nullptr

  • 作用: C++11 引入了 nullptr 关键字,专门用来区分空指针、0
  • 原有问题:传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL
  • 实现:nullptr 的类型为 nullptr_t,能够隐式的转换为任何指针或成员指针的类型,也能和他们进行相等或者不等的比较。当需要使用 NULL 时候,养成直接使用 nullptr的习惯

NULL的定义

#ifdef __cplusplus
#define NULL 0
#else   /* C++ */
#define NULL ((void *)0)

nullptr是一个字面值常量,类型为std::nullptr_t,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

t0tott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值