Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <iomanip>
- #include <fstream>
- #include <clocale>
- #include <curses.h>
- #include <cstdlib>
- #include <cstdio>
- using namespace std;
- class dvect2 {
- protected:
- double x;
- double *py;
- public:
- dvect2() // конструктор без параметров
- {
- py = new double(0);
- }
- ~dvect2() {
- if (py != NULL)
- delete py;
- }
- dvect2(dvect2 &z) //конструктор копирования
- {
- x = z.x;
- py = new double(*z.py);
- }
- dvect2(double x0, double y0) //конструктор с параметрами
- {
- x = x0;
- py = new double(y0);
- }
- friend istream &operator>>(istream &in, dvect2 &z);
- void raz(dvect2 v1, dvect2 v2);
- dvect2 &operator=(dvect2 &z) //перегрузка присваивания
- {
- if (this == &z)
- return z;
- x = z.x;
- *py = *z.py;
- return *this;
- }
- };
- istream &operator>>(istream &in, dvect2 &z) {
- cout << "x = ";
- in >> z.x;
- cout << "y = ";
- in >> *z.py;
- return in;
- }
- void dvect2::raz(dvect2 v1, dvect2 v2) {
- x = v1.x - v2.x;
- *py = *v1.py - *v2.py;
- }
- class vect3 : public dvect2 {
- private:
- double z;
- public:
- vect3() : dvect2() {}
- vect3(double x0, double y0, double z0) : dvect2(x0, y0), z(z0) {}
- ~vect3() {
- dvect2::~dvect2();
- }
- vect3(vect3 &z1) : dvect2(z1) {
- z = z1.z;
- }
- vect3 &operator=(vect3 &z1) {
- if (this == &z1)
- return z1;
- dvect2::operator=(z1);
- z = z1.z;
- }
- friend istream &operator>>(istream &in, vect3 &z1);
- void razn(vect3 v1, vect3 v2);
- };
- istream &operator>>(istream &in, vect3 &z1) {
- cout << "x = ";
- in >> z1.x;
- cout << "y = ";
- in >> *z1.py;
- cout << "z = ";
- in >> z1.z;
- return in;
- }
- void vect3::razn(vect3 v1, vect3 v2) {
- x = v1.x - v2.x;
- *py = *v1.py - *v2.py;
- z = v1.z - v2.z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement