などと自信満々に書いたけど、delete[]はNULLポインタだと例外だっけ

if (m_pcObject) {
 delete[] m_pcObject;
 m_pcObject = NULL;
}
とするか、二重解放しないように
for (int i = 0; i < m_nNum; i++)
m_pcObject[i].Delete();
を消すかしないとダメか。

いずれにせよ、NewData()もDelete()メソッドも、コンストラクタ/デストラクタにすべきだと思うよ