//构造函数
template
Array::Array(int size) {
this->size = size;
list = new T[size];
}
//拷贝构造函数
template
Array::Array(const Array& a) {
size = a.size;
list = new T[size];
for (int i = 0; i < size; i++) {
list[i] = a.list[i];
}
}
//析构函数
template
Array::~Array() {
delete[] list;
}
//重载"[]"
template
T & Array::operator [](int i) {
return list[i];
}
//重载"+"
template
Array& Array::operator+ (Array &rhs) {
Array* result = new Array(size + rhs.size);
for (int i = 0; i < size; i++) {
(*result)[i] = list[i];
}
for (int i = 0; i < rhs.size; i++) {
(*result)[size + i] = rhs.list[i];
}
return *result;
}
//返回数组大小
template
int Array::getsize() {
return size;
}
//重载"<<"
template
ostream& operator<<(ostream& os, Array& a) {
for (int i = 0; i < a.size; i++) {
os << a.list[i];
if (i != a.size - 1) {
os << ",";
}
}
return os;