1. shared_ptr의 순환참조 문제
두 객체가 서로를 가리키고 있을 때 메모리가 해제되지 않는다.
2. weak_ptr
순환참조 문제를 해결하기 위해 expired 함수를 사용하여 해당 포인터가 nullptr 인지 체크할 수 있다.
이어서 lock 함수를 사용하여 shared_ptr로 꺼내어 사용할 수 있다.
weak_ptr이 객체를 참조해도 참조 카운트를 증가시키지 않는다.
3. unique_ptr
객체를 가리키는 포인터가 오직 하나만 존재할 수 있다.
복사 생성자와 복사 연산자를 사용할 수 없게 막는다. 단, std::move 함수를 이용한 이동(오른값 참조)은 가능하다.
'복습' 카테고리의 다른 글
스마트 포인터 - shared_ptr (0) | 2023.10.11 |
---|---|
오른값 참조 (r-value Reference) (0) | 2023.10.11 |
람다 표현식 (Lambda) (0) | 2023.10.11 |
함수 객체 ( functor ; 펑터 ) (0) | 2023.10.06 |
함수 포인터 (0) | 2023.10.06 |