smart_ptr
-
_C++_Smart_PointerProgramming/_C++ 2023. 9. 19. 17:14
C++의 raw 포인터는 강력한 수단이지만, 집중력이 조금만 흐트러지면 버그가 발생하가 쉽다. 이를 보완하기 위해 C++11에서는 스마트 포인터를 제공한다. 종류는 세 가지(네 가지 이지만, 하나는 비권장 기능) std::unique_ptr std::shared_ptr std::weak_ptr 1. unique_ptr unique_ptr은 독점적 소유권을 갖는 포인터.(피지칭 객체를 가르키는 포인터가 오직 그것 하나 뿐임을 의미) unique_ptr이 소멸될 때 피지칭 객체도 소멸됨. 이동 전용 형식으로서 복사가 불가능. 2. shared_ptr shared_ptr은 독점적 소유권을 갖지 않는 포인터. shared_ptr이 하나의 객체를 가리킬 수 있음. 같은 대상을 가리키는 shared_ptr들은 피지..