智慧型指標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指向該物...