#include
using 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;
}
}
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)