shared_ptr的get函数
时间: 2024-02-27 09:47:37 浏览: 167
shared_ptr的get函数返回一个指向所管理对象的指针。实际上,它返回的是一个裸指针,不会对引用计数造成影响。
可以通过使用get函数来访问被shared_ptr管理的对象。需要注意的是,get函数返回的指针不能用来初始化另一个shared_ptr对象,否则会导致同一个对象有多个引用计数器。
下面是一个示例:
```
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr = std::make_shared<int>(42);
int *raw_ptr = ptr.get();
std::cout << *raw_ptr << std::endl;
*raw_ptr = 100;
std::cout << *ptr << std::endl;
return 0;
}
```
输出为:
```
42
100
```
可以看到,通过get函数获取的裸指针可以访问被shared_ptr管理的对象,并且可以修改这个对象的值。
相关问题
shared_ptr成员函数
shared_ptr是C++11引入的一种智能指针,它封装了指针并且提供了管理指针的功能。shared_ptr提供了很多成员函数,包括get、reset、use_count等。其中get函数返回指向被封装指针的指针,reset函数释放被封装指针并且可以重新赋值,use_count函数返回当前有多少个shared_ptr共享同一个指针。
shared_ptr get
shared_ptr的get()函数是用来获取shared_ptr所管理的对象的指针。它返回一个指向共享对象的原始指针。这个函数主要用于需要使用普通指针的情况,比如需要传递给C风格的库函数或者需要进行指针运算的情况。需要注意的是,get()函数返回的指针不能用来删除共享对象,否则会导致未定义行为。+<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Th5.3:智能指针(shared_ptr)之详述](https://blog.csdn.net/weixin_44980842/article/details/121706305)[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-shared_ptr详解](https://blog.csdn.net/younow22/article/details/114547539)[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 ]
阅读全文