Question: C++ add a copy constructor to the IntVector class // intVector.h #pragma once /* UML intVector ------------ -iVec:int* -capacity:int -current:int ------------ intVector() intVector(capacity:int) at(idx:int):int& //ivec.at(1)
C++
add a copy constructor to the IntVector class
// intVector.h
#pragma once
/* UML
intVector ------------ -iVec:int* -capacity:int -current:int ------------ intVector() intVector(capacity:int) at(idx:int):int& //ivec.at(1) = 5; add(val:int) add(idx:int, val:int)
*/
class intVector { private: int* iVec; int capacity; int current; public: intVector() { iVec = new int[5]; capacity = 5; current = 0; } intVector(int capacity) { this->capacity = capacity; iVec = new int[capacity]; current = 0; } ~intVector() { delete[] iVec; } int& at(int idx) //ivec.at(1) = 5; { return iVec[idx]; } void add(int ival) { if (current == capacity) { int* temp = new int[2 * capacity];
for (int i = 0; i < capacity; i++) temp[i] = iVec[i];
delete[] iVec; capacity *= 2; iVec = temp; } iVec[current] = ival; current++; } void add(int idx, int ival) { if (idx < capacity) { iVec[idx] = ival; } else { add(ival); } } void pop() { current--; }
};
// intVector.cpp
#include
using namespace std;
int main() { intVector vec1; intVector vec2(10);
//vec1.at(0) = 5;
vec1.add(-5); vec1.add(16); cout << vec1.at(0) << endl; cout << vec1.at(1) << endl; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
