// Project Vector // File main.cpp #include using namespace std; #include "vector.h" // Vector with zero size. Vector::Vector() { size = 0; array = NULL; } // Vector of size n set to zeros. Vector::Vector(int n) { size = n; array = new int[size]; for(int i = 0; i <= size-1; i++) array[i] = 0; } // Vector or size n initialized from array. Vector::Vector(int n, int a[]) { size = n; array = new int[size]; for(int i = 0; i <= size-1; i++) array[i] = a[i]; } // Copy constructor. Vector::Vector(Vector &v) { size = v.size; array = new int[size]; for(int i = 0; i <= size-1; i++) array[i] = v.array[i]; } // Destructor. Vector::~Vector() { delete[] array; } // Print vector. void Vector::print() { cout << "("; if (size == 0) { cout << " )" << endl; return; } for(int i = 0; i <= size-2; i++) cout << array[i] << ","; cout << array[size-1] << ")" << endl; } // Overloaded assignment operator. void Vector::operator=(Vector &v) { // Don't copy vector to itself. if (this == &v) return; size = v.size; array = new int[size]; for(int i = 0; i <= size - 1; i++) array[i] = v.array[i]; } // Overloaded addition operator. Vector Vector::operator+(Vector &v) { Vector w; if (size == v.size) { w.size = size; w.array = new int[size]; for(int i = 0; i <= size - 1; i++) w.array[i] = array[i] + v.array[i]; } return w; } // Overloaded file output operator. ostream& operator<<(ostream &out, Vector &v) { v.print(); return out; }