2011-03-20 11 views
3

私は弱い/強いポインタを書こうとしていますが、私はその関係をはっきりと理解していません。私が出会うように見えるものはすべてそれを明確にはしませんし、かなり頻繁に1人の医者が他の医者が言うことと矛盾します。誰も弱い/強いポインタの関係を詳細に説明してもらえますか?多分画像やコードのサンプルもありますか?弱い/強い参照ポインタの関係

( "boost boost"や "tr1 use"などと教えてください。これは宿題ではなく、私は学びたい)。

+0

[このビデオ](http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Stephan-T-Lavavej-Advanced-STL-1-of-n)をご覧になりたい場合は、 。 – fredoverflow

+0

勉強しても大丈夫です。しかし、車のエンジンがどのように動作するのか理解できなければなりません。基本原則は同じかもしれませんが、専門知識のホストがあります。プロフェッショナル・バージョンがどのように機能しているかを知りたい場合は、最初にその実装を理解してみてください。 –

答えて

8

強いポインタは、元の生ポインタを所有しています。その存在は生のポインタを生かし続けることができ、その結果、クリーンアップされたものを指すことはできません。その破壊は、生ポインタの削除を引き起こす可能性があります。ウィークポインタは未処理のポインタとそれがまだ有効かどうかだけを知っています。これは、生のポインタを既存のままにしておくことはなく、生のポインタをクリーンアップすることで元に戻すことはできません。

詳細な回答を得るには、見つかった矛盾や、定義の特定の部分に関する質問を表示する必要があります。

+0

IMHOここにweak_ptrと生ポインタの違いを追加すると良いでしょう。 - weak_ptrは、オブジェクトが削除されているかどうかを知り、weak_ptrを通して削除されたオブジェクトにアクセスしようとすると、_defined_ behavior - exception – maxim1000

関連する問題