Implement the class MyVector Implement the class MyVector #include #include usin
ID: 3835969 • Letter: I
Question
Implement the class MyVector
Implement the class MyVector #include #include using namespace std://Class declaration class MyVector {public: MyVectorO://Set the size to zero, elements points to null MyVector(int sz);//Set the elements to 0.0 ~ MyVector()://Should print a message - Vector deleted! int getSize() const; double getElement(const int index) const: void setElement(const int index, const double ele); MyVector& operator=(const MyVector& in_vec); private: int size://number of elements in the vector double* elements;//dynamic array};//Test int main() {MyVector vec1. vec2(3); cout nestedLessLess vec1.getSize()nestedLessLess " " nestedLessLess vec2.getSize()nestedLessLess endl://Prints 0 3 int i = 0; for (i = 0: iExplanation / Answer
#include<iostream>
#include<cstdlib>
using namespace std;
class MyVector {
public:
MyVector();
MyVector(int sz);
~MyVector();
int getSize() const;
double getElement(const int index) const;
void setElement(const int index, const double ele);
/*Put that operator inside your class definition.
It must be a member because operator= is special
and you would not gain something by writing it as a non-member anyway.
A non-member operator has two important main benefits:
Implicit conversions of the right and the left side of the operator invocation
No need to know about internals of the class. Function can be realized as non-member non-friend.*/
MyVector& operator=(const MyVector& in_vec){
MyVector veto(in_vec.getSize());
for(int i=0;i<in_vec.getSize();++i){
veto.setElement(i,in_vec.getElement(i));
}
return veto;
}
private:
int sze;
double* elements;
};
MyVector :: MyVector(){
sze = 0;
elements = nullptr;
}
MyVector :: MyVector(int sz){
sze = sz;
elements = new double[sze];
}
MyVector :: ~MyVector(){
cout<<"Vector deleted !!! "<<endl;
}
int MyVector :: getSize() const{
return sze;
}
double MyVector :: getElement(const int index) const{
return *(elements+index);
}
void MyVector :: setElement(const int index,const double ele){
*(elements+index) = ele;
}
int main(){
MyVector vec1, vec2(3);
cout<<vec1.getSize()<<" "<<vec2.getSize()<<endl;
int i=0;
for(i=0;i<vec2.getSize();++i){
vec2.setElement(i,static_cast<double>(i));
}
for(i=0;i<vec2.getSize();++i){
cout<<vec2.getElement(i)<<" ";
}
cout<<endl;
return 0;
}