私が遭遇した単なる概念的な質問。smart_ptr
私の現在のプロジェクトでは、ブーストとptr_container
ライブラリを使いすぎているように感じます。私はboost::ptr_vectors
多くの異なるオブジェクトを作成し、transfer()メソッドを呼び出して、特定のポインターboost::ptr_vector
を別のポインターに移動していました。
ヒープに割り当てられたオブジェクトの所有権を明確に示すことが重要であると私は理解しています。
私の質問は、これらのブーストライブラリを使用して、オブジェクトに属するヒープ割り当てメンバーを作成しget()
、処理を行うときにこれらのメンバーへの通常のポインタを使用することが望ましいかどうかです。
たとえば...ゲームには、それに属するタイルのコレクションが含まれている場合があります。これらのタイルをで作成することは理にかなっているかもしれませんboost::ptr_vector
。ゲームが終了すると、これらのタイルは自動的に解放されます。
ただし、これらのタイルを一時的にBagオブジェクトに入れたい場合は、バッグ内に別のタイルを作成しboost::ptr_vector
てを介してゲームのタイルをバッグに転送するか、Tiles*がゲーム内のタイルを参照transfer()
する場所を作成して渡す必要があります。std::vector<Tile*>
バッグに?
ありがとう。
**編集私の例では、ゲームにはメンバーとしてBagオブジェクトが含まれることを指摘しておく必要があります。バッグは、ゲームが所有するタイルでのみ満たされます。したがって、バッグはゲームなしでは存在しません。