shared_ptr的get方法
时间: 2023-09-07 22:16:57 浏览: 58
shared_ptr 的 get 方法用于获取指向托管对象的原始指针。它的原型如下:
```cpp
element_type* get() const noexcept;
```
其中,element_type 是 shared_ptr 的模板参数类型。该方法返回一个指向托管对象的原始指针,如果 shared_ptr 为空,则返回 nullptr。
使用 shared_ptr 的 get 方法可以方便地获取托管对象的原始指针,以便进行一些特定的操作,比如传递给 C 风格的函数或者调用需要原始指针作为参数的接口。但需要注意的是,get 方法返回的原始指针并不具有 shared_ptr 的所有权,因此需要确保在使用原始指针时,shared_ptr 仍然有效且未被释放。
示例代码如下:
```cpp
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr = std::make_shared<int>(42);
int* rawPtr = ptr.get();
if (rawPtr != nullptr) {
std::cout << "The value of the raw pointer: " << *rawPtr << std::endl;
}
return 0;
}
```
在上述示例中,我们创建了一个 shared_ptr 对象 ptr,并使用 get 方法获取了托管对象的原始指针 rawPtr。然后,我们通过判断 rawPtr 是否为空来确保 shared_ptr 有效,最后输出了原始指针指向的值。