一维数组Ar类的义 #include <iostream.h> #include <stdlib.h> template <class Type> class Array i Type elemen;数组存放空间 int ArraySize /前长度 void getArray(;∥建立数组空间 public C° Array(int Size- DefaultSize ) Array(const Array<Type>&x)
一维数组(Array)类的定义 #include <iostream.h> #include <stdlib.h> template <class Type> class Array { Type *elements; //数组存放空间 int ArraySize; //当前长度 void getArray ( ); //建立数组空间 public: Array(int Size=DefaultSize ); Array(const Array<Type>& x );
cArrayoi delete l elements; 3 array K<Type>& operator const Array<Type> &A); Type& operato[](int i); Array<Type> operator Type *( const i return elements; y int Length( const f return Array Size; j void Resize( int sz)
~Array( ) { delete [ ]elements;} Array<Type> & operator = ( const Array<Type> & A ); Type& operato [ ] ( int i ); Array<Type> operator Type * ( ) const { return elements; } int Length ( ) const { return ArraySize; } void ReSize ( int sz ); }
一雏数组公共操作的实现 template <class Type> void Array<Type>:getArray o& /私有函数:创建数组存储空 elements new Type[Array Size]: if (elements ==0) cerr << Memory allocation Error/ <Kendl
template <class Type> void Array<Type>::getArray ( ) { //私有函数:创建数组存储空间 elements = new Type[ArraySize]; if ( elements == 0 ) cerr << "Memory Allocation Error" <<endl; } 一维数组公共操作的实现
template <class Type> void Array<Type>:: Array( int sz)& /构造函数 f(sz<=0){ cerr < "Invalid Array size"<< endl; return Array Size =Sz; getarray(
template <class Type> void Array<Type>::Array ( int sz ) { //构造函数 if ( sz <= 0 ) { cerr << "Invalid Array Size" << endl; return; } ArraySize = sz; getArray ( ); }
template <class Type> Array<Type>:: Array( const Array<Type> &xi )制构造函数 int n= Array Size =x Array Size elements= new Typen; if (elements ==0) cerr<<"Memory Allocation Error < endl Type *srcptr=x elements, Type * destptr =elements; whille(n-)*destptr++=*srcptr++
template <class Type> Array<Type>:: Array ( const Array<Type> & x ) { //复制构造函数 int n = ArraySize = x.ArraySize; elements = new Type[n]; if ( elements == 0 ) cerr << "Memory Allocation Error" << endl; Type *srcptr = x.elements; Type *destptr = elements; while ( n-- ) * destptr++ = * srcptr++; }