티스토리 뷰

언어/C++

15.5 / 15.6 / 15.7

js0331 2020. 5. 23. 22:27

std::unique_ptr 은 copy semantics가 안됨.

 

소유권을 여러곳에서 공유할 수 있는 std::shared_ptr

 

순환 의존성 문제와 std::weak_ptr

 

 

스마트포인터를 사용하는 기본적인 이유를 개발자 본인이 메모리를 좀 덜 신경쓰도록하는데 기본적으로 초점이 맞춰져 있다.

 

소유권이 순환하게 되면 어떠한 한개를 지우더라도 카운트 된게 남아있어 메모리 leak이 발생할 수 있다.

 

이러한 문제를 해결하기 위해 있는게 weak_ptr이다.

 

하지만 weak 포인터를 사용하기 위해서는 .lock()을 해줘야 한다. 이렇게 하게 되면 shared_ptr로 바꿔서 사용 할 수 있게 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함