I have wirten a program to build a class vector execute +.-.*,<<.>>.==
With >>,<<, ==,!== operator which very good. But +,- operator be error!
Help me find error, please. Thanhks!
Code:
#include<iostream>
#include<conio.h>
using namespace std;
class Vector{
double *v;
int size;
public:
Vector(int x=2);
Vector(Vector &ob);
~Vector();
int getSize();
Vector& operator=(Vector &ob);
double& operator[](int i);
int operator == (Vector &ob);
int operator != (Vector &ob);
friend ostream& operator<<(ostream &os, Vector &ob);
friend istream& operator>>(istream &is, Vector &ob);
Vector operator + (Vector &) const ;
Vector operator - (Vector &) const;
};
Vector::Vector(int x){
size = x;
if(size >=0){
v= new double[size];
for(int i; i<size;i++)
v[i]=0;
}
else v=0;
}
Vector::~Vector(){
if(size>0) delete []v;
}
Vector::Vector(Vector &ob){
if(ob.size > 0){
size = ob.size;
v= new double [size];
for(int i=0; i<size; i++) v[i] = ob.v[i];
}
else{
size = 0;
v=0;
}
}
double &Vector::operator [](int i){
return v[i];
}
Vector& Vector::operator = (Vector &ob){
if(size>0) delete []v;
if(ob.size > 0) {
size = ob.size;
v = new double[size];
for(int i=0;i<size;i++) v[i] = ob.v[i];
}
else{
size = 0;
v = 0;
}
return *this;
}
int Vector::operator == (Vector &ob){
if(size!=ob.size)
return 0;
else {
for(int i=0;i<size;i++)
if(v[i]!=ob.v[i])
return 0;
return 1;
}
}
int Vector::operator != (Vector &ob){
return (*this == ob);
}
int Vector::getSize(){
return size;
}
ostream& operator << (ostream& os, Vector &ob){
if(ob.size>0){
for(int i=0;i<ob.size;i++)
os<<ob.v[i]<<" ";
}
else {
os<<"Vector is empty!"<<endl;
}
return os;
}
istream& operator >> (istream& is,Vector &ob){
if(ob.size>0){
for(int i=0;i<ob.size;i++){
cout<<"v["<<i<<"] :";
is>>ob.v[i];
}
}
return is;
}
Vector Vector::operator + (const Vector &ob) const{
Vector x;
v= new double[size];
for(int i=0;i<size;i++)
x.v[i] = v[i] + ob.v[i];
return x;
}
Vector Vector::operator - (const Vector &ob) const{
Vector x;
v= new double[size];
for(int i=0;i<size;i++)
x.v[i] = v[i]- ob.v[i];
return x;
}
int main(){
Vector v1(3),v2(3),v3;
cout<<"\nEnter v1:";
cin>>v1;
cout<<"\nDisplay :";
cout<<v1<<endl;
cout<<"\nTo query the first element of v1:";
cout<<v1[0]<<endl;
cout<<"\n---- Define for v2 ----\n";
cout<<"\nEnter :";
cin>>v2;
cout<<v2<<endl;
if(v1==v2) cout<<"v1 == v2";
else cout<<"\nv1 != v2";
v3 = v1 + v2;
cout<<v3;
v3 = v1 - v2;
cout<<"\n";
cout<<v3;
getch();
return 0;
}