본문 바로가기

Software/C++

C++ 스마트포인터 참조금지, 대입금지

C++ 스마트포인터에서 참조계수 방법은 편리하기는 하지만 어째든 참조계수가 더 부담된다. 

한번만 사용하고 복사나 대입을 금지하는 포인터를 만들면 참조계수 부담이 적고 destroy될때 메모리에서 정리된다.

참조계수 기반과 다르게   refbase를 상속받지 않는 int같은형도 가능하다. 

즉 sp<int> p1 이런게 가능하다. 


template<typename T> class sp

{

T* obj;

sp(const sp<T>&)  //복사 금지

void operator=(const sp<T>& )  //대입금지

public:

~sp() { delete obj; }  

sp(T* p = 0) : obj(p) {} 

T* operator->() { return obj; } 

T& operator*() { return *obj; } 

};



' Software > C++' 카테고리의 다른 글

C++ Smart Pointer 참조계수 기반  (0) 2016.08.21
C++참조변수-2  (0) 2016.07.30
C++ 참조변수-1  (0) 2016.07.30