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 #include "intVector.h"

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!