shared_ptr初始化
时间: 2023-09-10 11:04:58 浏览: 119
shared_ptr的初始化可以通过以下几种方式进行:
1. 通过直接调用构造函数进行初始化,例如:std::shared_ptr<T> ptr(new T);
引用
2. 在C++11中,当使用shared_ptr管理动态数组时,需要指定删除器,因为std::shared_ptr的默认删除器不支持数组对象。具体的处理代码如下:
std::shared_ptr<T> ptr(new T[size], std::default_delete<T[]>());
引用
3. 另外,我们还可以自己封装一个make_shared_array方法来让shared_ptr支持数组。这个方法会返回一个匿名的shared_ptr对象。具体的代码如下:
template <typename T>
std::shared_ptr<T> make_shared_array(size_t size) {
return std::shared_ptr<T>(new T[size], std::default_delete<T[]>());
}
引用<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++——智能指针——auto_ptr、shared_ptr、unique_ptr](https://blog.csdn.net/asdasdde/article/details/116267321)[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: 100%"]
[ .reference_list ]
阅读全文