Smart Pointer의 이해 - ② shared_ptr의 개념과 활용
shared_ptr unique_ptr은 객체에 대한 소유권을 하나의 스마트 포인터가 독점함을 보장했다. 하지만, 하나의 객체를 여러 포인터가 공유해야 하는 경우도 존재한다. 이럴 때는 shared_ptr을 사용할 수 있다. shared_ptr을 사용하면 개발자는 resource의 life cycle를 고려할 필요 없이 오브젝트의 소유권을 여러 scope에서 공유 가능하도록 만들 수 있다. shared_ptr은 여러개의 포인터가 하나의 객체를 가리키고 있고, 하나의 객체를 몇 개의 포인터가 참조하고 있는지를 Reference count에 기록한다. 이 Reference count가 0이 될 경우 객체를 자유공간에서 해제한다. 이해를 돕기 위해서 아래의 코드를 살펴보자. use_count 함수는 현재 포인..