対unique_ptrを+動きは、我々はこのようなものがあるとしましょう:コンストラクタ依存性注入:shared_ptrを
struct Complex{
Complex(Part1 p1, Part2 p2, Part3 p3)
}
Part1 p1;
Part2 p2;
Part3 p3;
しかし渡すコピーは効果的ではないが、私たちは、ポインタを移動する必要があります。質問はComplex
がp1, p2, p3
の本当の所有者であることから、unique_ptr
が優れているようで、一見— unique_ptr
またはshared_ptr
を使用するどのようなタイプです。ただし、コピーできないため、std::move
を使用する必要があります。
は、だから私の質問はPart
のうちunqiue_ptr
を作成し、Complex
のコンストラクタでmove
を使用するか、またはbegginingからshared_ptr
を作成して、代わりにshared_ptr
を使用し、この場合のためのより良い方法は何か—ですか?
※コピーを渡すと効果がないので、ポインタ*に移動する必要があります。または、ComplexとPartを移動可能にしますか? – stijn
複合体 - 単なる複雑で長い生命体です。しかし、現時点では、私は "5のルール"を実装する予定はありません。 –
あなたの問題を解決する方法でもないのですか?とにかく:スマートポインタは何らかの所有権を表しますので、答えは簡単です:p1/p2/p3が*共有*されていない場合は、* shared * _ptrを使用しないでください。 – stijn