unique ptr 的get()函数怎么用
时间: 2023-04-08 08:04:18 浏览: 120
智能指针unique_ptr的用法
5星 · 资源好评率100%
unique_ptr是C++11中引入的一种智能指针,它可以自动管理动态分配的内存,避免内存泄漏等问题。get()函数是unique_ptr类中的一个成员函数,用于返回指向所管理对象的原始指针。使用方法如下:
```
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int> p(new int(42));
int* q = p.get(); // 返回指向所管理对象的原始指针
std::cout << *q << std::endl; // 输出42
return 0;
}
```
在上述代码中,我们首先创建了一个unique_ptr对象p,它管理一个动态分配的int类型对象,并将其初始化为42。然后,我们使用get()函数获取p所管理对象的原始指针,并将其赋值给指针变量q。最后,我们输出q所指向的对象的值,即42。
需要注意的是,get()函数只返回原始指针,并不会将所管理对象的所有权转移给原始指针,因此在使用get()函数返回的原始指针时,需要注意不要在其生命周期内将其delete掉,否则会导致unique_ptr对象管理的对象被释放两次,从而引发未定义行为。
阅读全文