2

弱い/強い参照ポインター関係の独自の実装を作成していますが、構成に混乱しています。強い参照を含むクラスがあり、弱い参照を持つ別のクラスに強いポインターを設定したい場合、weak_ref ポインターのポインターを渡す必要がありますか?

誰かがこのコードを見て、感謝することを知らせてください。また、他の問題に気付いた場合はお知らせください。このページが煩雑にならないように、3 つのファイルを codepad ファイルに入れました。

WeakReference.h : http://codepad.org/nNtRk4vO

StrongReference.h : http://codepad.org/MGi0fZ4J

これを「boost を使用、std を使用、tr1 を使用」という引数に変えないでください。他のものを使用するのではなく、このコードに関するヘルプを探しています。

4

1 に答える 1

1

強参照と弱参照の概念を使用する実装は、すべて 2 つのカウントを使用しています。1 つのカウントが弱い参照の数で、もう 1 つのカウントが強い参照の数である場合があります。それ以外の場合、カウントの 1 つは、強い参照と弱い参照の合計を表します。時々、他のスキームがあります。しかし、あなたのようにカウントが 1 つしかない実装はまだ見たことがありません。

strong_ref と weak_ref の動作がどうあるべきかを正確に仕様を書いていただければ、おそらく助けになるでしょう。仕様を書くという行為は、実際に実装のデバッグに役立つことがわかりました。入力、出力、コーナーケース、無効なケースなどについて考える必要があります。

于 2011-03-14T01:18:31.653 に答える