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 point
for
#include "stdafx.h"
#include
#include
#include
/** 測試類 */
class
ctest
/** 析構函式 */
~ctest()
/** 成員函式 */
int
getmember()
private
:
/** 資料成員 */
int
m_member;
char
* m_pname;
};
int
_tmain(
int
argc, _tchar* argv)
/** 讓vector迭代器指向剛剛push_back到容器中的智慧型指標 */
std::vector>::iterator itor = vec.begin();
/** 訪問智慧型指標, (*itor)即為智慧型指標物件,指向了剛才建立的ctest,通過 -> 方法訪問ctest物件 */
std::cout << (*itor)->getmember()<
/** 清空容器,在容器被清空時,容器中的智慧型指標被刪除,
由於此時已經沒有智慧型指標指向該物件,故該ctest物件會自動析構 */
vec.clear();
int
temp;
std::cin >> temp;
return
0;
}
/** 使用智慧型指標需要注意的地方 */
// 1. 智慧型指標其實是一種類物件,並不是簡單的指標,故當智慧型指標包含另乙個類的物件時,
// 需要包含另乙個類的標頭檔案,而不能簡單的使用前向引用宣告
// eg: cmyclass.h檔案
#include
"ctest.h"
/** 不能簡單地使用前向引用宣告,必須包含標頭檔案 */
// 前向引用宣告 class ctest
class
cmyclass
;
// 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定位...