c++中make shared
时间: 2023-10-24 14:27:21 浏览: 54
在C++中,make_shared是一个用于创建shared_ptr对象的函数模板。它可以帮助我们更方便地初始化和管理动态分配的内存。通过使用make_shared,我们可以在动态分配的内存上构造对象并返回一个指向该对象的shared_ptr指针。
例如,在例子1中,我们可以看到如何使用make_shared来创建一个指向MyClass对象的shared_ptr指针。它的语法是std::make_shared<MyClass>()。这将创建一个MyClass对象,并返回一个指向该对象的shared_ptr指针。我们可以通过使用箭头运算符来访问MyClass对象的成员函数,就像在ptr->func()中一样。
在例子2中,我们可以看到如何使用make_shared来初始化一个指向string对象的shared_ptr指针。它的语法是std::make_shared<string>(args)。在这里,args是用于构造string对象的参数。我们可以通过这种方式来创建不同类型的对象,而无需手动分配内存和释放内存。
总结起来,使用make_shared可以更方便地创建和管理动态分配的内存,并且它是推荐的初始化shared_ptr的方法之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [c++ make_shared的使用及注意事项](https://blog.csdn.net/qq_26093511/article/details/131205849)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C++11 make_shared](https://blog.csdn.net/u013377887/article/details/108721596)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)