std::shared_ptr<>
时间: 2023-07-29 07:06:52 浏览: 109
std::shared_ptr<>是C++中的智能指针,用于管理动态分配的内存。它可以自动释放内存,并且可以共享指向同一对象的多个指针。\[1\]
在给std::shared_ptr赋值时,有三种方式可以使用。第一种是拷贝,即将一个shared_ptr赋值给另一个shared_ptr,这会使引用计数加1。第二种是移动,即使用std::make_shared创建一个新的shared_ptr,并将其赋值给另一个shared_ptr,这会使引用计数转移。第三种是使用std::move从一个unique_ptr移动到一个shared_ptr,这也会使引用计数转移。\[2\]
std::make_shared是一个函数模板,用于创建一个共享指针并初始化它所指向的对象。它可以接受任意数量的参数,并使用这些参数来构造对象。make_shared会在堆上分配内存,并返回一个共享指针,只会创建一次内存。\[3\]
综上所述,std::shared_ptr<>是一个用于管理动态分配内存的智能指针,可以共享指向同一对象的多个指针。它可以通过拷贝、移动和std::make_shared来赋值。make_shared是一个函数模板,用于创建共享指针并初始化所指向的对象。
#### 引用[.reference_title]
- *1* [std::shared_ptr的使用](https://blog.csdn.net/lyshiba/article/details/124429390)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [std::shared_ptr 详解](https://blog.csdn.net/baidu_31541363/article/details/95802210)[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^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文