智慧型指標(一)之引入

2021-08-05 23:05:49 字數 513 閱讀 5037

智慧型指標:所謂智慧型指標就化的管理是智慧型/自動指標所指向的動態資源的釋放。(利用raii機制)

raii:  1.定義乙個類來封裝資源的分配和釋放

2. 資源分配即初始化, 在建構函式完成資源的分配和初始化,

3.在析構函式完成資源的清理,可以保證資源的正確初始化和釋放。

注:智慧型指標不等於raii,智慧型指標只是raii思想的一種實現。

二、為什麼要引入智慧型指標

在c++中動態開闢的記憶體需要我們自己去維護,每次動態開闢記憶體,都要手動去釋放。但是在釋放動態開闢的記憶體時稍不留神就會出現一些問題(比如:1.在程式某個分支,忘記釋放記憶體。2.程式出現拋異常(在delete之前return)),這樣會引起記憶體洩漏。所以我們引入智慧型指標。

三、智慧型指標的發展

智慧型指標(一)

c 程式設計中使用堆記憶體是非常頻繁的操作,堆記憶體的申請和釋放都由程式設計師自己管理。管理是麻煩點 e.g.手動釋放等 但無傷大雅,勉強可以接受 但要命的是,容易出問題 為了解決該問題,c 11 引入智慧型指標概念使記憶體管理變得更為方便,且不易出錯 智慧型指標包含在標頭檔案中,包括 shared...

智慧型指標之獨佔指標

2.unique ptr 獨佔指標 獨佔型的指標不允許其它的智慧型指標共享其內部的指標,不允許通過賦值將乙個unique ptr賦值給另外乙個unique ptr unique ptr p1 new int 10 unique ptr p2 p1 錯誤的,不能複製給乙個獨佔的智慧型指標 unique...

智慧型指標之共享指標

智慧型指標是儲存指向動態分配物件指標的類。三種智慧型指標 std shared ptr std unique ptr std weak ptr.使用時需要加上標頭檔案 include 1.共享智慧型指標 shared ptr 初始化 shared ptr初始化可以通過reset方法初始化shared...