unique_ptr空指针
时间: 2024-08-15 10:09:35 浏览: 25
`unique_ptr` 是 C++11 引入的一种智能指针,用于管理单个对象的生命周期,并自动处理内存的释放。当你创建一个 `std::unique_ptr` 对象并传递一个指针给它时,它会持有该指针,并在析构函数中自动删除指向的对象,防止内存泄漏。`unique_ptr` 的特点是:
1. **独占所有权**:`unique_ptr` 实现了单一拥有者模式,不允许复制和赋值,除非通过 move 构造函数将所有权转移。
2. **默认构造与空指针**:如果未提供实际的指针,`unique_ptr` 将初始化为空,这意味着它的成员变量实际上是 nullptr(空指针)。这表明它尚未拥有任何资源。
3. **异常安全性**:`unique_ptr` 的析构函数会在遇到异常时确保已经拥有的资源被安全地释放。
4. **移动优化**:当需要传递所有权时,`unique_ptr` 使用移动构造和赋值运算符,这是非常高效的,因为它只涉及对内部指针的转移,而不涉及实际数据的复制。
```cpp
std::unique_ptr<int> ptr; // 默认构造,ptr 指向 nullptr
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)