Reference Class
Reference
클래스는 레퍼런스 카운트를 가지며 이를 통해 생성된 객체를 관리합니다.
Shared_ptr Class
shared_ptr
는 템플릿 클래스입니다. new
로 생성한 객체의 포인터를 가지는 클래스이며 Reference
클래스를 반드시 상속 받아야만 사용 가능하게 작성했습니다.
- operator=, operator==, operator!=는 생략했습니다. shared_ptr을 사용하기 위해서는 필수로 구현하셔야 합니다.
전역 연산자 오버로딩
shared_ptr
을 제대로 사용하기 위해서는 std::nullptr_t
와 비교하는 전역 연산자 오버로딩 또한 필요합니다.
끝으로
방어 코드 없이 간략하게 작성해보았습니다. 상속 받아야만 사용가능하다는 점이 단점이지만 구현이 쉬운편이므로 직접 해보시면 좋겠습니다.