函数返回shared_ptr函数返回shared_ptr
时间: 2023-08-06 18:05:37 浏览: 266
在C++中,函数可以返回一个shared_ptr对象。可以通过以下几种方式来返回shared_ptr对象:
1. 使用make_shared函数:可以使用std::make_shared函数来创建一个shared_ptr对象,并将其作为函数的返回值。例如:
```cpp
std::shared_ptr<MyClass> createObject() {
return std::make_shared<MyClass>("Hello", 3.14);
}
```
2. 使用new关键字:可以使用new关键字手动创建一个对象,并将其包装在shared_ptr中返回。例如:
```cpp
std::shared_ptr<int> createInt() {
return std::shared_ptr<int>(new int(1));
}
```
3. 使用reset函数:可以先创建一个空的shared_ptr对象,然后使用reset函数将其重新指向一个新的对象。例如:
```cpp
std::shared_ptr<int> createInt() {
std::shared_ptr<int> ptr;
ptr.reset(new int(1));
return ptr;
}
```
无论使用哪种方式,函数返回的shared_ptr对象都可以在函数外部进行使用和管理。
#### 引用[.reference_title]
- *1* *3* [C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr](https://blog.csdn.net/weixin_44120785/article/details/128714630)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [智能指针shared_ptr、unique_ptr、weak_ptr](https://blog.csdn.net/weixin_44477424/article/details/125902769)[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^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文