void Resize(int NewSize); }; ·Array类的实现: Templates<class T>//为数组分配空间 Void Array<T>::Allocate() { alist new T[Fsize]; if(alist==0) cerr<<"Memory Allocation Fail."<<endl;
void Resize(int NewSize); }; • Array类的实现: Template<class T> // 为数组分配空间 Void Array<T>∷Allocate( ) { alist = new T[Fsize]; if( alist==0 ) cerr<<“Memory Allocation Fail.”<<endl; }
Template<class T>/构造函数 Array<T>::Array(int sz=50) { if(sz<=0) { cerr<"Invalid Array Size."<endl; return; } Fsize=sz; Allocate(); }
Template<class T> // 构造函数 Array<T>∷Array(int sz=50) { if(sz<=0) { cerr<<“Invalid Array Size.”<<endl; return; } Fsize=sz; Allocate( ); }
template〈class T>/复制构造函数 Array<T>::Array(const Array<T>&x { Fsize=x.Fsize; Allocate(); for(int i=0;i<Fsize;i++) alist[i]x.alist[i];
template <class T>//复制构造函数 Array<T>∷Array(const Array<T>& x ) { Fsize=x.Fsize; Allocate( ); for(int i=0;i< Fsize;i++) alist[i] = x.alist[i]; }
template<class T>/[]的重载 T&Array<T>::operator[](int i) { if(i<0 i>=Fsize) { cerr<<"invalid index."<<;endl;exit(1); } return alist[i];
template<class T> // [ ]的重载 T& Array<T>∷operator[ ](int i) { if(i<0∣∣i>=Fsize) { cerr<<“invalid index.”<<;endl;exit(1); } return alist[i]; }
template<class T>/重载指针转换操作符 T&Array<T>::operator T*(void)const { 返回当前对象中私有数组的首地址 return alist;
template<class T> // 重载指针转换操作符 T& Array<T>∷operator T* (void)const { \\返回当前对象中私有数组的首地址 return alist; }