대 unique_ptr + 이동의 우리가 이런 식으로 뭔가가 있다고 가정하자 :생성자 의존성 주입 : shared_ptr의
struct Complex{
Complex(Part1 p1, Part2 p2, Part3 p3)
}
Part1 p1;
Part2 p2;
Part3 p3;
그러나 통과 사본이 효과적이지를, 그래서 우리는 포인터로 이동해야합니다. 질문은, unique_ptr
더 나은 것 같다 Complex
이 p1, p2, p3
의 실제 소유자이기 때문에, 언뜻보기 — unique_ptr
또는 shared_ptr
를 사용하는 유형이다; 그러나 복사 할 수 없으므로 std::move
을 사용해야합니다.
그래서 제 질문은 Part
중 unqiue_ptr
을 만든 다음 Complex
의 생성자에서 move
를 사용하거나 beggining에서 shared_ptr
을 만드는 대신 shared_ptr
를 사용,이 경우에 대한 더 좋은 방법이 무엇인지 —입니까?
* 통과하는 사본은 효과적이지 않으므로 포인터 *.로 이동해야합니다. 그렇지 않으면 컴플렉스 및 파트를 이동 가능하게 만드십니까? – stijn
복합체 - 단지 복잡하고 긴 생명체입니다. 그러나 현재로서는 "규칙 5"를 구현할 계획이 없습니다. –
또한 문제의 해결책이 아닌가? 어쨌든 : 스마트 포인터는 어떤 종류의 소유권을 나타냅니다. 따라서 대답은 쉬운 것처럼 보입니다 : p1/p2/p3이 * 공유 *되지 않으면 * shared * _ptr을 사용하지 마십시오? – stijn