Advertisement
Guest User

Untitled

a guest
May 19th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. #include "conio.h"
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6.  
  7. class vekt
  8. {
  9. public:
  10.     virtual double dlina_vect() = 0;
  11.     virtual void print() = 0;
  12. };
  13.  
  14.  
  15. class vekt_na_plti:public vekt // Класс "Вектор на плоскости"
  16. {
  17. protected:
  18.     double x, y;  //координата вектора x, y
  19. public:
  20.     vekt_na_plti(double x, double y)  //конструктор для инициализации поля
  21.     {
  22.         this->x = x;
  23.         this->y = y;
  24.     }
  25.     virtual double dlina_vect()
  26.     {
  27.         double l;
  28.         l = pow(this->x*this->x + this->y * this->y, 0.5);
  29.         return l;
  30.     }
  31.     virtual void print()
  32.     {
  33.         cout << "koordinata vektora x= " << this->x << endl;
  34.         cout << "koordinata vektora y= " << this->y << endl;
  35.         cout << "Dlina vektora na ploskosti: L=" << this->dlina_vect() << endl;
  36.     }
  37. };
  38. class vektor_v_trexmern_prve : public vekt_na_plti  // Производный класс
  39. {
  40.     double z;  //координата вектора z
  41. public:
  42.     vektor_v_trexmern_prve(double x, double y, double z) :vekt_na_plti(x, y)
  43.     {
  44.         this->z = z;
  45.     }
  46.     double dlina_vect()
  47.     {
  48.         double l;
  49.         l = pow(this->x*this->x + this->y * this->y + this->z * this->z, 0.5);
  50.         return l;
  51.     }
  52.     void print() // переопределненный метод принт
  53.     {
  54.         cout << "koordinata vektora z= " << this->z << endl; // Допечатывает поле z
  55.         vekt_na_plti::print(); // Вызов в переопределенном методе метода
  56. // базового класса
  57.     }
  58. };
  59.  
  60. int main()
  61. {
  62.     int n = 2;
  63.     vekt **vektor;
  64.     vektor = new vekt*[n];
  65.     vektor[0] = new vekt_na_plti(10.5, 25.2);
  66.     vektor[1] = new vektor_v_trexmern_prve(10.5, 22.5, 35.4);
  67.     for(int i=0;i<n;i++)
  68.     {
  69.         vektor[i]->print();
  70.         vektor[i]->dlina_vect();
  71.         cout << endl;
  72.     }
  73.  
  74.     system("pause");
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement