为了账号安全,请及时绑定邮箱和手机立即绑定

元素个数可在程序运行时改变并完成该类中没有完成的成员函数,并设计主函数,实现对该模板类的测试。

元素个数可在程序运行时改变并完成该类中没有完成的成员函数,并设计主函数,实现对该模板类的测试。

C++
Devil10 2016-07-03 11:20:50
#include <iostream.h>#include <stdlib.h>//容错处理enum ErrorType{invalidArraySize,memoryAllocatetionError,indexOutOfRang};char *errorMsg[] ={"Invalid array size","Memory allocation error","Invalid index"};template <class T>class Array{private:T* alist;int size;void Error(ErrorType error) const;//输出错误信息public:Array(int sz=50);//构造函数Array(const Array<T>& X);//拷贝构造函数~Array(void);//析构函数Array<T>& operator=(const Array<T>& rhs);//重载赋值运算符T& operator[](int i);//重载下标运算符int GetSize(void) const;//获取数组大小void Resize(int sz);//重新设置数组大小};template <class T>Array<T>::Array(int sz){if(sz <= 0)  Error(invalidArraySize);size = sz;alist = new T[size];if(alist == 0)  Error(memoryAllocatetionError);}template <class T>Array<T>::Array(const Array<T>& X){int n = X.size;size = n;alist = new T[n];if(alist == 0)  Error(memoryAllocatetionError);T* srcptr = X.alist;T* destptr = alist;while(n--)  *destptr++ = *srcptr++;}template<class T>Array<T>::~Array(){delete[] alist;}template <class T>Array<T>& Array<T>::operator=(const Array<T> &rhs){int n = rhs.size;if(size != n){  delete[] alist;  alist = new T[n];  if(alist == 0)   Error(memoryAllocatetionError);  size = n;}T* destptr = alist;T* srcptr = rhs.alist;while(n--)  *destptr++ = *srcptr++;return *this;}template<class T>T& Array<T>::operator[](int n){if(n < 0 || n > size-1)  Error(indexOutOfRang);return alist[n];}void main(){}
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 1471 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信