weak_ptr 智慧型指標是為了解決shared_ptr相互引用導致的死鎖問題,它不控制物件的生命週期,不會增加物件的引用次數,和shared_ptr可以相互轉化,是一種弱應用。
下面的**就陷入了死鎖,p1和p2相互引用導致計數一直為1,而物件得不到銷毀。
借助weak_ptr指標**
#include
#include
using
namespace std;
class
dogdog
(string name)
void
makefriend
(shared_ptr f)
void
foo()~
dog(
)private
: weak_ptr ptr_friend;
//此處設定為weak_ptr
物件成功銷毀。
C 智慧型指標 weak ptr
weak ptr 是一種不控制物件生命週期的智慧型指標,它指向乙個 shared ptr 管理的物件.進行該物件的記憶體管理的是那個強引用的 shared ptr.weak ptr只是提供了對管理物件的乙個訪問手段.weak ptr 設計的目的是為配合 shared ptr 而引入的一種智慧型指標來...
智慧型指標weak ptr
智慧型指標weak ptr主要用來協助shared ptr。不參與引用計數,但是有以下好處 1 打破遞迴的依賴關係 2 使用乙個共享的資源但是不要所有權,不新增引用計數 3 避免懸空指標。使用方法有二 方法一 boost shared ptrsp new std string method1 從sh...
智慧型指標 weak ptr
weak ptr是為了配合shared ptr而引入的一種智慧型指標,它更像是shared ptr的乙個助手而不是智慧型指標,因為它不具有普通指標的行為,沒有過載operator 和 它的最大作用在於協助shared ptr工作,像旁觀者那樣觀測資源的使用情況.用法 weak ptr被設計為與sha...