У меня есть домашняя работа, но я не очень хорошо знаком с шаблонами классов.
Задача:
Существует серьезная проблема в реализации следующего класса. Вы можете это заметить? Как вы можете исправить
эта проблема? Вы можете предложить более одного решения, в зависимости от требований спецификации
класс.
template <class T>
class Array
{
private:
T *m_pData;
unsigned int m_nSize;
public:
Array(unsigned int nSize) : m_nSize(nSize)
{
if(m_nSize > 0)
m_pData = new T[m_nSize];
}
virtual ~Array()
{
if(m_pData != NULL)
delete m_pData;
}
bool Set(unsigned int nPos, const T& Value)
{
if(nPos < m_nSize)
{
m_pData[nPos] = Value;
return true;
}
else
return false;
}
T Get(unsigned int nPos)
{
if(nPos < m_nSize)
return m_pData[nPos];
else
return T();
}
};
Насколько я понимаю, есть утечка памяти. Вы замечаете другие проблемы? Намеки приветствуются точнее, чем точные ответы;)