std::shared_ptr<T>::operator*, std::shared_ptr<T>::operator->
來自 cppreference.com
< cpp | 記憶體 | shared ptr
T& operator*() const noexcept; |
(1) | (C++11 起) |
T* operator->() const noexcept; |
(2) | (C++11 起) |
解引用所儲存的指標。若所儲存的指標為空,則行為未定義。
目錄 |
[編輯] 引數
(無)
[編輯] 返回值
1) 解引用所儲存指標的結果,即 *get()。
2) 所儲存的指標,即 get()。
[編輯] 註解
當 T
為 陣列型別或(可能被 cv 限定的)(C++17 起) void
時,是否宣告函式 (1) 是未指定的。若其被宣告,則其返回型別是未指定的,除了該函式的宣告(雖然不必須是定義)必須為良構的。這使得例項化 std::shared_ptr<void> 成為可能。
當 |
(C++17 起) |
[編輯] 示例
執行此程式碼
#include <iostream> #include <memory> struct Foo { Foo(int in) : a(in) {} void print() const { std::cout << "a = " << a << '\n'; } int a; }; int main() { auto ptr = std::make_shared<Foo>(10); ptr->print(); (*ptr).print(); }
輸出
a = 10 a = 10
[編輯] 參閱
返回儲存的指標 (公開成員函式) |