// revised 20 01 96 //#include ; // NULL must be defined #include // exit() must be defined #include //#include <_null.h> template class TArray { protected: long _Size; T* _p; //protected: public: const long Size() const { return _Size; }; T* p() const {return _p;}; T * Alloc(long Size); TArray(long Size); TArray(const TArray& a); ~TArray(); Resize(long NewSize); TArray& operator=(const TArray& a); friend int operator!=(const TArray& a1, const TArray& a2); friend ostream& operator << ( ostream& stm, const TArray& a ); }; //---------------------------------------------------- template T *TArray ::Alloc(long Size) { T *p = new T [Size]; if(p==0) { /*ErrorService("TArray::Alloc not enough memory"); */ cout< TArray ::TArray(long Size): _Size(Size) { _p = Alloc(_Size); } template TArray ::TArray(const TArray& a) { _Size = a._Size; _p = Alloc( a._Size ); for(long i=0;i<_Size;i++){_p[i]=(a._p[i]);} } template TArray ::~TArray() { if(_p !=0) delete [] _p; } template TArray& TArray::operator=(const TArray& a) { _Size = a._Size; delete _p; _p = Alloc( a._Size ); for(long i=0;i TArray ::Resize(long NewSize) { _Size = NewSize; delete _p; _p = Alloc(_Size); } //////////////////////////////////////////////////////////////// /* template int operator!=(const TArray& a1, const TArray& a2) { long s = a1.Size(); if(s != a2.Size()) { return 1; } else { for(long i=0;i ostream& operator << ( ostream& stm, const TArray& a ) { stm<<"Array("; for(long i=0;i