template class Array { public: Array(int n) { Data=new T*[Size=n]; Used=0; } ~Array(); void Clear(); void Add(T *Item) { if (Used==Size) Resize(); Data[Used++]=Item; } void Delete(int i) { delete Data[i]; memcpy(Data+i,Data+i+1,(--Used-i)*sizeof(T)); } void Resize(); T **Data; int Used,Size; T* operator [](int i) { return Data[i]; } }; template Array::~Array() { Clear(); } template void Array::Clear() { for (int i=0;i void Array::Resize() { // create new array T **NewData=new T*[Size=(long)Size*(100+INC)/100]; for (int i=0;i