본문 바로가기

Development Experience/C, C++

C++ 스마트 포인터 간단 정리

1. unique_ptr, shared_ptr, week_ptr 은 raw pointer를 담는 그릇이라고 생각하면 쉽다.

2. unique_ptr

  => raw pointer에 대한 소유권을 단 하나의 스마트 포인터 객체만 가질 수 있다.
       만일 다른 unique_ptr에게 raw pointer에 대한 소유권을 넘기려면 move 함수를 사용해야 한다.

3. shared_ptr

  => raw pointer에 대한 소유권을 여러 개의 스마트 포인터 객체가 가질 수 있다.
       raw pointer를 소유하고 있는 shared_ptr의 개수가 늘어날수록 raw pointer에 대한 참조 카운트가 증가한다.

4. week_ptr

  => raw pointer에 대한 소유권을 여러 개의 스마트 포인터 객체가 가질 수 있는 점은 
       shared_ptr과 동일하지만 차이점은 week_ptr의 경우 raw pointer에 대한 소유권을 획득해도 
       raw pointer에 대한 참조 카운트는 증가하지 않는다는 점이다.

반응형