#pragma once
template<typename T>
class smart_pointer
{
private:
T* m_pRawPointer;
public:
smart_pointer(T* pData) :m_pRawPointer(pData) {}
//複制構造函數
smart_pointer(const smart_pointer& anotherSP);
//指派
smart_pointer& operator=(const smart_pointer& anotherSP);
//
T& operator* () const
{
return *(m_pRawPointer);
}
T* operator-> () const
return m_pRawPointer;
};