[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이 참조하는 데이터 메모리를 회수하는 기능이죠!




'Language & Solution > C++' 카테고리의 다른 글

[C++] constexpr  (0) 2018.06.24
[C++] Header File (헤더 파일)  (0) 2018.06.24
[C++] 스마트포인터  (0) 2017.05.14
[C++] volatile  (0) 2017.05.14
[C++] 얕은 복사, 깊은 복사  (0) 2017.05.14
[C++] virtual function 동작 방식  (0) 2017.05.13

이 글을 공유하기

댓글(0)

Designed by JB FACTORY