아래에 Resouce라는 클래스가 있습니다. 그리고 다음과 같이 unique_ptr로 내부 포인터가 Resouce 객체를 가리키도록 했습니다.
unique_ptr > unique7(80,"Robert Jim"));
에서 내부포인터가 가리키는 객체는 Resource라는 객체인데, unique_ptr로 생성된 Resource라는 객체는 ~Resouce라는 소멸자가 필요없나요?
C++ 표준 라이브러리(니콜라이 조슈티스 저, 한정애 역) p147의 6행에 따르면 "unique_ptr을 사용하면 객체가 삭제될 때 멤버도 같이 삭제되기 때문에 소멸자를 가질 필요가 없다"라고 합니다. 그런데 이것이 정말 사실인지 궁금합니다. 그렇다라고 한다면 unique_ptr에서
delete[] name;
이라는 것으로 메모리를 삭제한다는 것인지? 아니면 이것도 역시 운영체제에서 알아서 메모리를 회수한다는 것인지? 어떤 식으로 name이라는 메모리가 회수되는 것인가요? 소멸자는 호출이 안되나요?
문제의 코드는 다음과 같습니다.