// 构造函数 template Array::Array(int size) { list = new T[size]; this->size = 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* res = new Array(size + rhs.size); for (int i = 0; i < size; i++) { (*res)[i] = list[i]; } for (int i = 0; i < rhs.size; i++) { (*res)[size + i] = rhs.list[i]; } return *res; }

// 返回数组大小 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; }

class Array { public: Array(int size = 50); Array(const Array& a); ~Array(); T & operator [](int i); // 重载"[]" Array & operator+ (Array &rhs); // 重载 "+", 完成两个数组内容的拼接 int getsize(); // 返回数组大小 template friend ostream& operator<<(ostream& os, Array& a); private: T* list; int size; };


原文地址: https://www.cveoy.top/t/topic/oBha 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录