#include "Array.h" Array::Array() { len = 0; cap = 1000; ptr = new int[1000]; } Array::Array(int size) { len = 0; cap = size; ptr = new int[cap]; } Array::Array(const Array& arr2) { len = arr2.len; cap = arr2.cap; ptr = new int[cap]; for (int i = 0; i < len; i++) { ptr[i] = arr2.ptr[i]; } } Array::~Array() { if (ptr != NULL) delete[] ptr; } Array& Array::operator=(const Array& arr2) { if (ptr != NULL) delete[] ptr; ptr = NULL; len = arr2.len; cap = arr2.cap; ptr = new int[cap]; for (int i = 0; i < len; i++) { ptr[i] = arr2.ptr[i]; } return *this; } int Array::operator[] (int index) const { // check boundary of index // ... return ptr[index]; } int& Array::operator[] (int index) { // check boundary of index // ... return ptr[index]; } void Array::resize(int new_size) { if (cap >= new_size) return; int* ptr2 = new int[new_size]; for (int i = 0; i < len; i++) { ptr2[i] = ptr[i]; } delete[] ptr; ptr = ptr2; // return; } void Array::swap(Array& arr2) { int* tmp_ptr = ptr; ptr = arr2.ptr; arr2.ptr = tmp_ptr; int tmp = cap; cap = arr2.cap; arr2.cap = tmp; tmp = len; len = arr2.len; arr2.len = tmp; } int main() { Array arr(100); //arr[0] = 1; Array arr2(arr); }