Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class vec {
- friend class arr_vec;
- private: double x, y, z;
- public: friend vec operator+ (vec, vec);
- friend vec operator* (vec, double);
- friend vec operator* (double, vec);
- friend vec toVec(double x, double y, double z);
- };
- vec toVec (double x, double y, double z) {
- vec v;
- v.x=x;
- v.y=y;
- v.z=z;
- return v;
- }
- vec operator+ (vec c, vec d) {
- return toVec(c.x+d.x, c.y+d.y, c.z+d.z);}
- vec operator* (vec c, double d) {
- return toVec(c.x*d, c.y*d, c.z*d);}
- vec operator* (double c, vec d) {
- return toVec(c*d.x, c*d.y, c*d.z);}
- class arr_vec {
- private: double *x, *y, *z;
- int n;
- public: arr_vec(int);
- ~arr_vec();
- void set(int, vec);
- vec operator[] (int) const;
- friend arr_vec operator+ (const arr_vec&, const arr_vec&);
- friend arr_vec operator* (double, const arr_vec&);
- friend arr_vec operator* (const arr_vec&, double);
- void show();
- };
- arr_vec::arr_vec(int N) {
- n=N;
- x=new double[n];
- y=new double[n];
- z=new double[n];
- for(int i=0; i<n; i++) {x[i]=y[i]=z[i]=1;}
- }
- arr_vec::~arr_vec() {
- delete[]x;
- delete[]y;
- delete[]z;
- }
- void arr_vec::set(int N, vec vvv) {
- if (n<N) return;
- x[N]=vvv.x;
- y[N]=vvv.y;
- z[N]=vvv.z;
- }
- vec arr_vec::operator [](int N) const {
- return toVec(x[N], y[N], z[N]);
- }
- arr_vec operator+ (const arr_vec& c, const arr_vec& d) {
- arr_vec *e;
- e=new arr_vec(c.n);
- for(int i=0; i<e->n; i++) e->set(i, c[i]+d[i]);
- return *e;
- }
- arr_vec operator* (double c, const arr_vec& d) {
- arr_vec *e;
- e=new arr_vec(d.n);
- for (int i=0; i<e->n; i++) e->set(i, c*d[i]);
- return *e;
- }
- arr_vec operator* (const arr_vec& c, double d) {
- arr_vec *e;
- e=new arr_vec(c.n);
- for (int i=0; i<e->n; i++) e->set(i, c[i]*d);
- return *e;
- }
- void arr_vec::show() {
- cout<<endl<<"X: ";
- for(int i=0; i<n; i++) cout<<x[i]<<"\t";
- cout<<endl<<"Y: ";
- for(int i=0; i<n; i++) cout<<y[i]<<"\t";
- cout<<endl<<"Z: ";
- for(int i=0; i<n; i++) cout<<z[i]<<"\t";
- cout<<endl;
- }
- int main() {
- arr_vec c(2), d(2);
- vec e, f;
- e=toVec(1,2,3);
- f=toVec(4,5,6);
- c.set(0, e);
- c.show();
- }
Advertisement
Add Comment
Please, Sign In to add comment