# std::shared_ptr<T>::get

< cpp‎ | memory‎ | shared ptr

T* get() const noexcept; |  | (C++17 前)
element_type* get() const noexcept; |  | (C++17 起)

返回存储的指针。

### 参数

（无）

### 返回值

存储的指针。

### 注意

`shared_ptr` 可能在存储指向一个对象的指针时共享另一对象的所有权。 `get()` 返回存储的指针，而非被管理指针。

### 示例

    #include <iostream>
    #include <memory>
    #include <string_view>

    void output(std::string_view msg, int const* pInt)
    {
        std::cout << msg << *pInt << "\n";
    }

    int main()
    {
        int* pInt = new int(42);
        std::shared_ptr<int> pShared = std::make_shared<int>(42);

        output("Naked pointer ", pInt);
        // output("Shared pointer ", pShared); // 编译错误
        output("Shared pointer with get() ", pShared.get());

        delete pInt;
    }

输出：

    Naked pointer 42
    Shared pointer with get() 42

### 参阅

operator*operator-> | 解引用存储的指针 (公开成员函数)