[C++] 스마트포인터
스마트 포인터는 C++에서 포인터 때문에 생기는 여러 문제점(메모리 누수, dangling pointer, 할당 실패)을 보완하는 객체입니다. 이 스마트 포인터의 정체는 다름 아닌 포인터를 감싸는 단순한 wrapper라고 보시면 되죠.
template class auto_ptr
{
T* ptr;
public:
explicit auto_ptr(T* p = 0) : ptr(p) {}
~auto_ptr() {delete ptr;}
T& operator*() {return *ptr;}
T* operator->() {return ptr;}
// ...
};
위의 코드를 참고해보면 방금 설명한 스마트 포인터는 포인터를 감싸는 단순한 wrapper라는 것을 알 수 있죠. 여기서의 핵심은 소멸자에 있습니다. 바로 ptr이 참조하는 데이터 메모리를 회수하는 기능이죠!
'기타 > C++' 카테고리의 다른 글
[C++] 문자열 앞뒤 공백 제거 방법 ( Boost 라이브러리 안 씀 ) (0) | 2021.03.30 |
---|---|
[C++] namespace, FQN(fully Qualified Name) (0) | 2021.03.30 |
[C++] constexpr (0) | 2021.03.30 |
[C++] Header File (헤더 파일) (0) | 2021.03.30 |
[C++] volatile (0) | 2021.03.30 |
[C++] 얕은 복사, 깊은 복사 (0) | 2021.03.30 |
[C++] virtual function 동작 방식 (0) | 2021.03.30 |
[C++] lambda 식 (0) | 2021.03.30 |