SharedPtr 라이브러리


개요

이 라이브러리는 C++ 스마트 포인터의 내부 구조와 동작 방식을 더 자세히 이해할 수 있도록 사용자 정의 shared pointer를 구현한 것입니다. std::shared_ptr참조 카운트(reference counting) 방식을 모방하면서도, 명확성과 최소한의 오버헤드에 중점을 두었습니다. 구현은 헤더 전용(header-only)으로 되어 있으며, 더 이상 필요하지 않은 리소스를 자동으로 삭제함으로써 안전한 메모리 관리를 제공합니다.

저장소 보기


클래스 목록 및 설명

CRefCounter 클래스

  • 역할:
    • 참조 카운트가 필요한 객체를 위한 기본 클래스입니다.
  • 핵심 함수들:

CSharedPtr<T> 클래스

  • 역할:
    • 참조 카운트를 사용해 동적으로 할당된 리소스의 수명을 관리하는 스마트 포인터입니다.
  • 핵심 함수들:
    • 이 함수들은 참조 카운트 관리와 포인터 할당을 직접적으로 처리하는 유일한 함수들입니다.

코드 분석

사용 예제

int main()
{
	// CObject 생성
	CObject* obj = new CObject;
 
	CSharedPtr<CObject> sharedPtr1 = obj; // 참조 카운트: 1
	CSharedPtr<CObject> sharedPtr2 = obj; // 참조 카운트: 2
 
	sharedPtr1 = nullptr; // 참조 카운트: 1
	sharedPtr2 = nullptr; // 참조 카운트: 0, CObject 삭제
 
	return 0;
}
참조 카운트를 사용해 CObject메모리 관리를 수행하는 CSharedPtr 사용 예제입니다.