=> 동적할당시, 원래는 new로 할당을 받고, delete로 삭제해야함.
=> Java처럼, 사용이 끝난 메모리를 자동으로 해제해주는 포인터
1. 종류
=> unique_ptr
-> 객체의 유일한 소유권을 부여함으로써, 소유권을 보유할때만 소멸자가 해당 객체를 삭제할 수 있게 하는 포인터
-> "유일한 소유권"이기 때문에, 동시에 두개 이상이 되서는 안됨[동일한 객체를 가질 수 없음]
-> 또한 소유권의 이전이 불가능하여, 이전 소유권을 소멸시키고, 새 소유권을 생성해야함
=> shared_ptr
-> 객체에 대한 소유권을 여러 스마트포인터가 공유하면서 참조 카운트 방식을 사용
-> 참조 카운트가 0이 되면 데이터를 해제
-> 참조 카운트 덕분에 명시적으로 메모리 해제 시점을 알 수 있음
-> Deadlock의 가능성이 존재함[Circular reference]
=> weak_ptr
-> 객체에 대한 소유권을 여러 스마트 포인터가 공유하지만, 참조 카운트의 값은 변화 없음
'C++ > Tips' 카테고리의 다른 글
[c++]Try / Catch (0) | 2021.02.16 |
---|---|
[c++/c#]Region (0) | 2021.02.09 |
[c++] struct (0) | 2021.01.26 |
[c++]Typename (0) | 2021.01.26 |
[c++]auto (0) | 2021.01.19 |