[C++ STL] 1-3. 템플릿 - 스마트 포인터(smart pointer)

스마트 포인터의 종류

  1. shared_ptr
    1. shared ptr은 어떤 하나의 객체를 참조하는 스마트 포인터의 개수를 참조하는 스마트 포이넡이다. 이렇게 참조하고 있는 스마트 포인터의 개수를 참조 카운트(reference count) 라고 한다. 참조 카운트란 해당 메모리를 참조하는 포인터가 몇개인지 나타내는 값으로 sharedptr 가 추가될때 씩 증가하고 수명이 다하면 1씩 감소한다.
    2. 수명이 다하거나 main() 함수가 종료되면 자동으로 메모리를 해제한다.
  2. unique_ptr
    1. 하나의 스마트 포인터만이 객체를 가리킬수 있도록 한다. reference count 가 1을 넘길수 없다.
  3. weak_ptr 하나 이상의 shared_ptr 가 가리키는 객체를 참조할수 있지만 reference count 를 늘리지 않는 스마트 포인터이다. 순환참조를 제거하기 위해 사용된다.