C++ 클래스에서는 변환 연산자(Conversion operator)라는 특이한 함수를 연산자 오버로딩할 수 있다. 예를 들어서 아래와 같이 CSharedPtr을 구현한 상태라고 생각해보자. #pragma once template class CSharedPtr { public: CSharedPtr(): m_Ptr(nullptr) { } CSharedPtr(T* Ptr) { m_Ptr = Ptr; if (m_Ptr) m_Ptr->AddRef(); } CSharedPtr(const CSharedPtr& Ptr) { m_Ptr = Ptr.m_Ptr; if (m_Ptr) m_Ptr->AddRef(); } ~CSharedPtr() { if (m_Ptr) m_Ptr->Release(); } private: T* m..