스마트 포인터는 소유권 모양으로 고른다

누수를 막는 핵심은 포인터 값이 아니라 “누가 언제 해제 책임을 갖는가”를 타입으로 표현하는 것입니다.

소유자가 하나다

unique_ptr

make_unique로 만들고 스코프 종료 때 자동 해제합니다.

여러 곳이 함께 소유한다

shared_ptr

마지막 소유자가 사라질 때 객체가 해제됩니다.

순환 참조를 끊어야 한다

weak_ptr

소유권을 늘리지 않고 객체 생존 여부만 확인합니다.

RAII 장점

예외가 나도 스코프를 빠져나가며 소멸자가 해제 책임을 수행합니다.

주의

shared_ptr끼리 서로 잡는 순환 구조는 카운트가 0이 되지 않아 누수가 됩니다.