C 複習之智慧型指標

2021-10-05 19:00:12 字數 537 閱讀 8869

複習智慧型指標時正好看到new的最基本用法:

內建的new操作符,經常使用的t *ptr = new t(),分配記憶體,呼叫建構函式

呼叫operator new分配記憶體operator new(sizeof(a)) 

呼叫建構函式生成類物件,a::a() ,呼叫placement new

返回相應指標

事實上,分配記憶體這一操作就是由operator new(size_t)來完成的,如果類a過載了operator new,那麼將呼叫a::operator new(size_t ),否則呼叫全域性::operator new(size_t ),後者由c++預設提供。

1. 智慧型指標:

如果我們不在每乙個可能跳轉或者返回的語句前釋放資源,就會造成記憶體洩露。使用智慧型指標可以很大程度上的避免這個問題,因為智慧型指標就是乙個類,當超出了類的作用域是,類會自動呼叫析構函式,析構函式會自動釋放資源。

c 智慧型指標複習筆記

shared ptr 變數出了作用域之後智慧型指標會析構,引用計數 1,直到為0時銷毀物件,呼叫物件的析構函式,哪怕是出現了異常。weak ptr解決迴圈引用問題 unique ptr它不允許其他的智慧型指標共享其內部的指標,不允許通過賦值將乙個unique ptr賦值給另乙個unique ptr ...

C 之智慧型指標

本文發表於1999年10月份的c c users journal,17 10 1.為什麼稱它為 自動 指標?auto ptr只是眾多可能的智慧型指標之一。許多商業庫提供了更複雜的智慧型指標,用途廣泛而令人驚異,從管理引用的數量到提供先進的 服務。可以把標準c auto ptr看作智慧型指標的ford...

C 之智慧型指標

c 中有四個智慧型指標 auto ptr,shared ptr,weak ptr,unique ptr,其中後三個是c 11支援,並且第乙個已經被c 11棄用。智慧型指標從書面意思來說,就是智慧型。主要是動態記憶體的使用很容易出問題,要在正確的時間正確釋放記憶體是很困難的。有時我們可能忘了釋放記憶體...