class Class_1 {
int *m_pnData;
public:
Class_1 () : m_pnData(NULL) {}
~Class_1 () { Delete(); }
void NewData (int nNum) { m_pnData = new int[nNum]; }
void Delete () { delete [] m_pnData; }
};
class Class_2 {
Class_1 *m_pcObject;
int m_nNum;
public:
Class_2 () : m_pcObject(NULL) { m_nNum = 0; }
~Class_2 () {
for (int i = 0; i < m_nNum; i++)
m_pcObject[i].Delete();
delete [] m_pcObject;
}
void Create () {
m_nNum = 2;
m_pcObject = new Class_1[m_nNum];
m_pcObject[0].NewData(3);
m_pcObject[1].NewData(3);
}
};