smart pointer
스마트 포인터는 dangling 포인터의 문제를 해결해준다. C++의 RAII 디자인 패턴을 기반으로 한 포인터이다. 스마트 포인터의 특징은 다음과 같다.
- 오토포인터의 단점인 new[]의 해제 불가 문제 해결
- 스마트포인터의 해제는 해제할 메모리영역 + 4바이트로 크기가 결정된다
- 4바이트는 해제할 메모리 영역의 크기를 담고있는 정보다
- dangling포인터 문제 해결
- 하나의 객체로 생성자와 소멸자를 가지며 자동으로 동적할당된 메모리가 파일스코프를 벗어났을때 해제한다
unique_ptr
하나의 객체 참조는 하나만 가능하며 소유권을 이전한다
shared_ptr
하나의 객체를 여러개가 참조가능하며 count가 0이되면 소멸한다
weak_ptr
shared_ptr의 순환 참조 문제를 해결하며 count에 영향을 미치지 않는다
Code
c++
1 |
|