Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "conio.h"
- #include <iostream>
- #include <cmath>
- using namespace std;
- class vekt
- {
- public:
- virtual double dlina_vect() = 0;
- virtual void print() = 0;
- };
- class vekt_na_plti:public vekt // Класс "Вектор на плоскости"
- {
- protected:
- double x, y; //координата вектора x, y
- public:
- vekt_na_plti(double x, double y) //конструктор для инициализации поля
- {
- this->x = x;
- this->y = y;
- }
- virtual double dlina_vect()
- {
- double l;
- l = pow(this->x*this->x + this->y * this->y, 0.5);
- return l;
- }
- virtual void print()
- {
- cout << "koordinata vektora x= " << this->x << endl;
- cout << "koordinata vektora y= " << this->y << endl;
- cout << "Dlina vektora na ploskosti: L=" << this->dlina_vect() << endl;
- }
- };
- class vektor_v_trexmern_prve : public vekt_na_plti // Производный класс
- {
- double z; //координата вектора z
- public:
- vektor_v_trexmern_prve(double x, double y, double z) :vekt_na_plti(x, y)
- {
- this->z = z;
- }
- double dlina_vect()
- {
- double l;
- l = pow(this->x*this->x + this->y * this->y + this->z * this->z, 0.5);
- return l;
- }
- void print() // переопределненный метод принт
- {
- cout << "koordinata vektora z= " << this->z << endl; // Допечатывает поле z
- vekt_na_plti::print(); // Вызов в переопределенном методе метода
- // базового класса
- }
- };
- int main()
- {
- int n = 2;
- vekt **vektor;
- vektor = new vekt*[n];
- vektor[0] = new vekt_na_plti(10.5, 25.2);
- vektor[1] = new vektor_v_trexmern_prve(10.5, 22.5, 35.4);
- for(int i=0;i<n;i++)
- {
- vektor[i]->print();
- vektor[i]->dlina_vect();
- cout << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement