티스토리 뷰

#pragma once

template<typename T>
class unique_ptr
{
private:
	T* data;
	//static bool count = false;

public:
	// 복사생성자 삭제 (이동만 가능하도록)
	unique_ptr(const unique_ptr& rhs) = delete;
	unique_ptr& operator= (const unique_ptr& rhs) = delete;

	// 종료생성자
	~unique_ptr() {
		if(data != nullptr)
			delete data;
	}
    
    //생성자
	unique_ptr() : data(nullptr) {}
	unique_ptr(T* t) : data(t) {}
    
    //이동 생성자
	unique_ptr(unique_ptr<T>&& t) noexcept{
		this->data = t.get();
		t.data = nullptr;
	}
	unique_ptr& operator= (unique_ptr<T>&& t) noexcept {
		this->data = t.get();
		t.data = nullptr;
		return *this;
	}

public:
	//메서드
	T* get() {
		return data;
	}
	T* operator->() {
		return data;
	}
};
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함