#include #include #include "SafeArray6.h" using namespace std; SafeArray::SafeArray() : elements(nullptr), length(0) { } SafeArray::SafeArray(int len) : elements(nullptr), length(len) { elements = new int[length]; } SafeArray::SafeArray(const SafeArray& other) : elements(nullptr), length(0) { length = other.length; elements = new int[length]; for (int i = 0; i < length; i++) { elements[i] = other.elements[i]; } } SafeArray::~SafeArray() { cout << "Calling destructor ... "; if (elements != nullptr) delete[] elements; cout << "done!" << endl; } SafeArray& SafeArray::operator =(const SafeArray& rhs) { if (this == &rhs) return *this; if (elements != nullptr) delete[] elements; length = rhs.length; elements = new int[length]; for (int i = 0; i < length; i++) { elements[i] = rhs.elements[i]; } return *this; } int& SafeArray::operator [](int i) const { assert((i >= 0) && (i < length)); return elements[i]; } int SafeArray::get_length() const { return length; }