c++智慧指標中的reset成員函式
若p為智慧指標物件(如:shared_ptr< int> p)
成員函式reset使用:
p.reset(q) //q為智慧指標要指向的新物件
會令智慧指標p中存放指標q,即p指向q的空間,而且會釋放原來的空間。(預設是delete)
實驗程式碼:
#include<memory>
#include<iostream>
using namespace std;
struct A {
int i ;
A() { cout << "construct\n"; }
~A() { cout << "delete "<< i <<"\n"; }
};
int main()
{
shared_ptr<A> a( new A);
A* b = new A;
a->i = 1;
b->i = 2;
a.reset(p);
//此時輸出delete 1,代表智慧指標原來指向的空間被delete
cout << "end";
return 0;
}
其他reset使用:
p.reset(); //釋放p中內建的指標指向的空間
p.reset(q.d); //將p中內建指標換為q,並且用d來釋放p之前所指的空間
相關文章
- 函式指標使用c++類成員函式函式指標C++
- 如何使用成員函式指標函式指標
- 淺談C++指標直接呼叫類成員函式C++指標函式
- 為什麼 C++ 中成員函式指標是 16 位元組?C++函式指標
- C++的成員指標C++指標
- C++智慧指標作為成員變數C++指標變數
- C++ 類成員指標C++指標
- C++中函式指標與函式物件C++函式指標物件
- c++ 函式指標C++函式指標
- C++中的函式指標和函式物件總結C++函式指標物件
- C++:類的成員函式C++函式
- C++函式指標詳解C++函式指標
- Rust中的函式指標Rust函式指標
- c++ const 成員函式C++函式
- c++中string類成員函式的總結C++函式
- 成員方法的this指標指標
- C/C++——指向函式的指標和指向函式的指標的陣列C++函式指標陣列
- C++ 中的 const 物件與 const 成員函式C++物件函式
- 深入C++成員函式及虛擬函式表C++函式
- 成員變數/函式指標的用法 (轉)變數函式指標
- vector中存放函式指標函式指標
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- 詳解C/C++函式指標宣告C++函式指標
- C#中的函式指標 (轉)C#函式指標
- C++智慧指標C++指標
- 【c++】智慧指標C++指標
- C++程式的函式指標:實操來了C++函式指標
- 函式指標函式指標
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- 聊聊 C++ 中的幾種智慧指標 (上)C++指標
- C/C++—— 寫一個函式,它的引數為指向函式的指標,返回型別也為指向函式的指標C++函式指標型別
- c++中模板類的成員函式的宣告與定義應該放在標頭檔案裡C++函式
- C++中的this指標C++指標
- 指向函式的指標函式指標
- C# 跨平臺呼叫C++的函式指標C#C++函式指標
- 「C++」理解智慧指標C++指標
- 函式名/函式地址/函式指標函式指標
- 宣告與函式、函式指標函式指標