Boostを語れゴラァ part3at TECH
Boostを語れゴラァ part3 - 暇つぶし2ch566:デフォルトの名無しさん
07/01/07 20:46:53
>>563
shared_ptr の実装は,参照カウントによって管理されるオブジェクト
(A とします) と独立して,新たにフリーストア (ヒープ) 上に
参照カウント用のオブジェクト (X とします) を生成します.

X は, A の参照カウントと独立して自分自身の参照カウントも持っていて,
独立した2つの参照カウントを持っているイメージになります.

shared_ptr が1つ作られるごとに A の参照カウントと X の参照カウント両方が
1つ増やされ, shared_ptr が1つ破壊されるごとに
A の参照カウントと X の参照カウント両方が1つ減らされます.

weak_ptr が1つ作られるごとに X の参照カウントのみが増やされ,
weak_ptr が1つ破壊されるごとに X の参照カウントのみが減らされます.

A の参照カウントが0になれば A を delete します.
しかし, X の参照カウントが0になっていなければ X は破壊されません.

最終的に全ての shared_ptr と weak_ptr が存在しなくなった時点で,
X の参照カウントは0になります.この時点で X は delete されます (自殺します).

以上が, shared_ptr と weak_ptr の実装面での動作です.


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch