#pragma один раз
шаблон <имяТипа T>
класс smart_pointer
{
частное:
T * m_pRawPointer;
общественности:
smart_pointer (Т * PDATA): m_pRawPointer (PDATA) {}
// конструктор копирования
smart_pointer (Const smart_pointer & anotherSP);
//赋值
smart_pointer & оператор = (Const smart_pointer & anotherSP);
//
T & оператор * () сопзЬ
{
возвращение * (m_pRawPointer);
}
Т * operator-> () сопзЬ
{
вернуть m_pRawPointer;
}
};