細談C 中的智慧型指標

2021-05-23 18:43:20 字數 465 閱讀 4484

指標是c++語言的靈魂,也就是說想學好c++,就必須學好指標的用法。指標的靈活性給c++程式插上了一雙翅膀,使c++程式設計師可以編寫出更加飄逸的**,但隨之而來的則是令人煩躁的記憶體管理。在使用指標時,記憶體洩露的問題一直困擾著c++程式設計師。智慧型指標的出現使得記憶體洩露這一棘手的問題得到了相當程度的緩解。

智慧型指標(smart pointer)的一種通用實現技術是使用引用計數(reference count)。智慧型指標類將乙個計數器與類指向的物件相關聯,引用計數跟蹤該類有多少個物件共享同一指標。

每當乙個新的「智慧型指標」指向一塊「記憶體位址」的時候,這塊「記憶體位址」對應的「被指向計數器」自增1;每當乙個「智慧型指標」的生命週期結束或者指向其它「記憶體位址」的時候,這塊「記憶體位址」對應的「被指向計數器」自減1,此時,如果該「被指向計數器」的計數值為0,也就是說不再有任何「智慧型指標」指向這塊「記憶體位址」時,則將這個「記憶體位址」釋放掉。

下面是我自己編寫的乙個簡單的智慧型指標。

C 中的智慧型指標

長久以來 c 最被人詬病的就是它的記憶體管理,寫個稍微複雜點的程式就經常會碰到記憶體洩漏問題。為了解決這個問題,c 也做了許多努力。在 c 98 標準中首先提出了智慧型指標的概念,引入了 auto ptr。但是在實踐中,auto ptr 有不少問題。因此在 c 11 標準中對原有的智慧型指標又做了進...

c 中的智慧型指標

1.智慧型指標的作用 為了防止記憶體洩露的問題 c 程式設計中使用堆記憶體是非常頻繁的操作,堆記憶體的申請和釋放都由程式設計師自己管理。程式設計師自己管理堆記憶體可以提高了程式的效率,但是整體來說堆記憶體的管理是麻煩的,c 11中引入了智慧型指標的概念,方便管理堆記憶體。使用普通指標,容易造成堆記憶...

C 中的智慧型指標

c 中的四個智慧型指標分別是 1.shared ptr 2.unique ptr 3.weak ptr 4.auto ptr 已經被c 11棄用 在c 11的環境中會爆警告warning auto ptr is deprecated 智慧型指標的作用是管理乙個指標。因為存在以下這種情況 申請的空間在...