std::shared_ptr<T>::get
来自cppreference.com
< cpp | memory | shared ptr
工具库
动态内存管理
|
std::shared_ptr
成员函数 | ||||
修改器 | ||||
观察器 | ||||
shared_ptr::get
|
||||
(C++17)
|
||||
(C++20
前)
|
||||
非成员函数 | ||||
(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20)
|
||||
函数(C++20
中弃用)
|
||||
辅助类 | ||||
(C++20)
|
||||
推导指引(C++17) |
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
参阅
解引用存储的指针 (公开成员函数) |