智慧型指標weak ptr

2021-06-07 16:51:57 字數 627 閱讀 9520

智慧型指標weak_ptr主要用來協助shared_ptr。不參與引用計數,但是有以下好處:

1 打破遞迴的依賴關係

2 使用乙個共享的資源但是不要所有權,不新增引用計數

3 避免懸空指標。

使用方法有二:

// 方法一

boost::shared_ptrsp(new std::string("method1");

// 從shared_ptr構建出來

boost::weak_ptrwp(sp);

// 再從shared_ptr獲取回去

boost::shared_ptrp = wp.lock();

// 方法二

boost::shared_ptrsp(new std::string("method1");

// 從shared_ptr構建出來

boost::weak_ptrwp(sp);

// 再從shared_ptr獲取回去

boost::shared_ptrp(wp);

注意:各個智慧型指標都設計的盡量與stl相容,但是還有一些問題。比如equal_to中比較string的示例就會導致出錯。

智慧型指標 weak ptr

weak ptr是為了配合shared ptr而引入的一種智慧型指標,它更像是shared ptr的乙個助手而不是智慧型指標,因為它不具有普通指標的行為,沒有過載operator 和 它的最大作用在於協助shared ptr工作,像旁觀者那樣觀測資源的使用情況.用法 weak ptr被設計為與sha...

智慧型指標 weak ptr

weak ptr weak ptr是為了配合shared ptr而引入的一種智慧型指標,它更像是shared ptr的乙個助手而不是智慧型指標,因為它不具有普通指標的行為,沒有過載operator 和 它的最大作用在於協助shared ptr工作,像旁觀者那樣觀測資源的使用情況.用法 weak pt...

智慧型指標之weak ptr

weak ptr是一種不控制所指向物件生存期的智慧型指標,它指向乙個由shared ptr管理的物件。將乙個weak ptr繫結到乙個shared ptr不會改變shared ptr的引用計數。並且一旦最後乙個shared ptr被銷毀,其所指向的物件就會被釋放,就算此時仍有weak ptr指向該物...