unique_ptr c++函数
时间: 2023-07-24 08:44:35 浏览: 104
C++11智能指针中的 unique_ptr实例详解
`std::unique_ptr` 是 C++11 标准库中的一个智能指针,用于管理动态分配的内存。它提供了对指针所指向的对象的唯一所有权。当 `unique_ptr` 对象被销毁时,它所拥有的对象也会被销毁。
以下是一个简单的使用 `unique_ptr` 的示例代码:
```
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> ptr(new int(42));
std::cout << *ptr << std::endl; // 输出 42
*ptr = 100;
std::cout << *ptr << std::endl; // 输出 100
return 0;
}
```
在这个示例中,我们首先创建了一个 `unique_ptr<int>` 对象 `ptr`,并将一个动态分配的 `int` 类型的对象的地址赋值给它。我们可以通过解引用 `ptr` 来访问这个动态分配的 `int` 对象,并修改它的值。当程序退出 `main` 函数时,`ptr` 对象被销毁,它所拥有的 `int` 对象也会被销毁。
需要注意的是,`unique_ptr` 对象不能被复制,只能被移动。这是因为 `unique_ptr` 对象拥有唯一的对象所有权,如果被复制,就会出现多个 `unique_ptr` 对象拥有同一个对象的情况,这显然是不合理的。因此,我们只能通过移动构造函数或移动赋值运算符将一个 `unique_ptr` 对象的所有权转移给另一个对象。
阅读全文