boost share ptr智慧型指標使用示例

2021-07-31 21:25:53 字數 3202 閱讀 6030

12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

6162

6364

6566

6768

6970

7172

7374

7576

7778

7980

8182

8384

8586

8788

8990

9192

9394

9596

9798

99100

101102

103104

105106

107108

109110

111112

113114

115116

117118

119120

121122

123124

125126

127128

129130

131132

133134

135136

137138

139140

141142

143/ test.cpp : defines the entry pointfor

#include "stdafx.h"

#include

#include

#include

/** 測試類   */

classctest

/** 析構函式 */

~ctest()

/** 成員函式 */

intgetmember()

private:

/** 資料成員 */

intm_member;

char* m_pname;

};

int_tmain(intargc, _tchar* argv)

/** 讓vector迭代器指向剛剛push_back到容器中的智慧型指標 */

std::vector>::iterator itor = vec.begin();

/** 訪問智慧型指標, (*itor)即為智慧型指標物件,指向了剛才建立的ctest,通過 -> 方法訪問ctest物件    */

std::cout << (*itor)->getmember()<

/** 清空容器,在容器被清空時,容器中的智慧型指標被刪除,

由於此時已經沒有智慧型指標指向該物件,故該ctest物件會自動析構 */

vec.clear();

inttemp;

std::cin >> temp;

return0;

}

/** 使用智慧型指標需要注意的地方 */

// 1. 智慧型指標其實是一種類物件,並不是簡單的指標,故當智慧型指標包含另乙個類的物件時,

//        需要包含另乙個類的標頭檔案,而不能簡單的使用前向引用宣告

// eg: cmyclass.h檔案

#include"ctest.h"

/** 不能簡單地使用前向引用宣告,必須包含標頭檔案 */

// 前向引用宣告 class ctest

classcmyclass

;

// 2. shared_ptr 是執行緒安全的

// 3. 使用智慧型指標出現迴圈引用的情況

// 即兩個類互相含有對方類物件的智慧型指標

// 看下面這一篇文章boost智慧型指標——weak_ptr

原文**:

樂搏學院

boost share ptr學習筆記

shared ptr是一種智慧型指標 smart pointer shared ptr的作用有如同指標,但會記錄有多少個shared ptrs共同指向乙個物件。用法 1 刪除共享物件 使用shared ptr解決的主要問題是知道刪除乙個被多個客戶共享的資源的正確時機。下面是乙個簡單易懂的例子,有兩個...

商業智慧型與web智慧型

業務背景 電信業,銀行,電商,智慧型產品等 思維框架 商業理解 資料理解 資料準備 建立模型 模型評估 模型應用 商業智慧型是通過對來自不同的資料來源進行統一處理及管理,通過靈活的展現方式來幫助企業進行決策支援 即 資料 資訊 知識 決策 crisp dm 跨行業資料探勘標準流程 基本應用過程 1,...

智慧型畜牧開發(智慧型跟蹤)

最終產品 完成乙個智慧型畜牧項圈,這個項圈可以實時跟蹤牛場上牛的運動狀態資訊,並將資訊實時上報到伺服器。一 硬體選型 bm503開發套件 m203c模組 nrf52832藍芽晶元 硬體介紹 bm503開發套件由m203c模組和nrf52832藍芽晶元共同構成。m203c模組 的功能 聯網 gps定位...