unique_ptr初始化
时间: 2023-08-21 11:04:10 浏览: 57
unique_ptr可以通过多种方式进行初始化。一种常见的方法是将new操作符用于初始化,将要管理的对象作为参数传递给unique_ptr的构造函数。例如,可以使用以下方式进行初始化:
```
std::unique_ptr<int> ptr(new int(10));
```
另一种常见的方法是使用make_unique函数进行初始化,该函数会在堆上动态分配一个对象,并返回一个指向该对象的unique_ptr。例如:
```
std::unique_ptr<std::string> ptr = std::make_unique<std::string>("Hello");
```
还可以使用匿名对象来初始化unique_ptr,这可以通过直接在构造函数中使用new操作符,或者通过调用函数返回匿名对象来实现。例如:
```
std::unique_ptr<std::string> ptr1(new std::string("Hello World"));
std::unique_ptr<std::string> ptr2 = return_unique_ptr("func return");
```
在这些例子中,unique_ptr会在其生命周期结束时自动释放所管理的对象的内存。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [智能指针之unique_ptr(概述,初始化,成员函数用法,以及转化成shared_ptr)07](https://blog.csdn.net/weixin_44517656/article/details/114217244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]