#includeusing namespace std; template class Array { private: T *arr; int arrNum; //数组长度 int arrCapacity; //数组容量 public: Array() { //无参构造函数 arrCapacity = 20; arr = new T(arrCapacity); arrNum = 0; } Array(int n) { //有参构造函数 arrNum = 0; arrCapacity = n; arr = new T(arrCapacity); } Array( const Array& parr) { //拷贝构造函数 if (arr != nullptr) { delete[]arr; arr = nullptr; arrNum = 0; arrCapacity = 0; } this->arrNum = parr.arrNum; this->arrCapacity = parr.arrCapacity; arr = new T(parr.arrCapacity); } void Addend(T element) { //尾插法增加元素 arrNum++; arr[arrNum - 1] = element; } void Deteteend() { //尾插法删测元素 if (arrNum == 0) return; arrNum--; } Array& operator=(Array& parr) { //重载= if (arr != nullptr) { delete[]arr; arr = nullptr; arrNum = 0; arrCapacity = 0; } this->arrCapacity = parr.arrCapacity; this->arrNum = parr.arrNum; arr = new T(parr.arrCapacity); for (int i = 0;i < arrNum;i++) { arr[i] = parr->getDate; } return this; } T getDate(int pos) { //下标访问元素 if (pos <= arrCapacity && pos <=arrNum - 1) return arr[pos]; else return 0; } int getarrNum() { //获取元素个数 return arrNum; } int getCapacity() { //获取数组容量 return arrCapacity; } ~Array() { //析构函数 if (arrNum != 0) { delete[]arr; arr = nullptr; } } };



