1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
class Vector {
int ndim;
double* data;
public:
Vector( int n, double d[]);
~Vector();
Vector& operator+=(const Vector& q);
Vector& operator-=(const Vector& q);
double operator[](int i) const { return data[i]; };
friend Vector operator+(const Vector& p,const Vector& q);
friend Vector operator-(const Vector& p,const Vector& q);
friend double operator*(const Vector& p,const Vector& q);
friend ostream& operator<<(ostream& s, Vector& p);
};
Vector::Vector( int n, double d[]){
data =new double [n];
for (int i =0; i<ndim; i++)
double data = d[i];
}
Vector::~Vector(){
delete[] data;
}
Vector::Vector& operator+=(const Vector& q){
data+=q.data;
return *this;
}
Vector::Vector& operator-=(const Vector& q){
data-=q.data;
return *this;
}
Vector operator+(const Vector& p,const Vector& q){
Vector a = p;
a+ = q;
return a;
}
Vector operator-(const Vector& p,const Vector& q){
Vector a = p;
a- = q;
}
double operator*(const Vector& p,const Vector& q){
return p.data*q.data + p.data*q.data;
}
ostream& operator<<(ostream& s, Vector& p){
return s <<"("<<p.data[i]<<" , "<<p.data[i]<<" , "<<p.[i]<<" , "<<p.[i]<<")";
}
int main(int argc, char *argv[])
{
data = new double[n];
double a[]= {1.0, 2.0, 3.0, 4.0};
Vector b(4, a);
cout<<b<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
|