[C++] 스마트포인터

2021. 3. 30. 12:50 기타/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이 참조하는 데이터 메모리를 회수하는 기능이죠!



출처: https://engkimbs.tistory.com/151?category=688856 [새로비]

'기타 > 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