나는 boost :: shared_array 멤버가 포함 된 클래스가 있습니다. 다른 멤버들은 역동적이지 않습니다. 단지 많은 int, 포인터가 없습니다. 그런 클래스에 대한 기본 복사 생성자는 괜찮을 것으로 기대합니다.복사 생성자 및 할당 연산자로 boost :: shared_ *
이 내 가정이다 :
- 의 내가, 오리지널를이 클래스의 인스턴스가 있다고 가정 해 봅시다.
- 오리지널의 부재하는 shared_array 이제 오리지널 사본 1
참조 카운트 생성했다 :
= 오리지널 복사하는 단계; 위의 올바른은
가 내가 지금 2
의 참조 카운트를 모두 사본 및 오리지널이 동일한 기본 메모리를 가리 shared_arrays을 가지고 각을 기대 인가?
boost :: shared_ * 회원이있을 때 기본 복사 생성자에 대해 경고하는 사람들이 겁이났습니다.하지만 왜 기본이 좋지 않거나/나쁠 수 있는지 설명을 찾을 수는 없습니다. 예를 들어, 다음은 명시 적으로 복사/할당이 정의되어야한다라고 누군가에 의해 코멘트는하지만 왜 아무런 설명 : 복사 생성자와 대입 연산자가 필요로 할 때
이https://stackoverflow.com/a/716112/629530
누군가가 명확히 수는 클래스에 대해 정의 할 수 boost :: shared_ * (shared_array 및 shared_ptr) 멤버가 포함되어 있습니까?
기술적으로 기본 복사 생성자가 정확합니다. 그러나 전체 복사본 대신 얕은 복사본 만 만듭니다. 그러나 대부분의 사람들은 복사본이 원본 개체와는 별도로 깊다고 생각합니다. – nosid
감사 인사. 명확히하기 위해, 내가 준 예제에서 얻은 나의 이해가 정확하다는 말입니까?어쨌든, 나는 대답을 좀 더 자세히 설명해 줄 것을 권유한다. – firebush