我有作業要做,但我沒有非常熟悉類模板。類模板的問題
的任務是:
有一個在下面的類執行的主要問題。你能發現它嗎?你怎麼能修復 的問題?您可以提出多個解決方案,具體取決於該類別的要求規格 。
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();
}
};
至於我而言是有內存泄漏。你發現一些其他問題嗎?提示比確切的答案更受歡迎;)
沒有內存泄漏(因爲內存是由析構函數釋放的),但你正在考慮沿着正確的線。順便說一下,至少有三個主要問題。 –