Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cmath>
- using namespace std;
- class punct
- {
- int x, y;
- public:
- punct();
- punct(int x_t, int y_t)
- {
- x = x_t;
- y = y_t;
- }
- punct operator=(punct z)
- {
- this->x = z.x;
- this->y = z.y;
- return *this;
- }
- vector<int> getter() ///for point (convert point = vector<int>)
- {
- vector <int> temp;
- temp.push_back(x);
- temp.push_back(y);
- return temp;
- }
- };
- class patrat
- {
- punct stanga_jos;
- float latura;
- public:
- patrat();
- patrat(int lungime_temp, punct temp)
- {
- latura = lungime_temp;
- stanga_jos = temp;
- }
- float aria()
- {
- return latura * latura; ///O(1)
- }
- float perimetru()
- {
- return latura * 4; ///merge si la float
- }
- float getter()
- {
- return latura;
- }
- };
- class dreptunghi:protected patrat
- {
- float latura2;
- public:
- dreptunghi(int latura2_temp, int latura1_temp, punct temp):patrat(latura1_temp, temp), latura2() {}
- float aria()
- {
- return getter()*latura2;
- }
- float perimetru()
- {
- return 2 * (getter() + latura2); ///static il implementam mai tarziu
- }
- };
- class romb:protected patrat
- {
- punct punct2;
- public:
- romb(punct temp1, int latura1_temp, punct temp):patrat(latura1_temp, temp), punct2() {}
- float perimetru()
- {
- return patrat::perimetru();
- }
- float aria()
- {
- return patrat::aria(); ///idee
- }
- };
- class paralelogram:protected dreptunghi, romb
- {
- public:
- paralelogram(int latura1, int latura2, punct temp1, punct temp2):dreptunghi(latura1, latura2, temp2), romb(temp1, latura2, temp2) {}
- float perimetru()
- {
- return dreptunghi::perimetru();
- }
- float aria()
- {
- return dreptunghi::aria();
- }
- };
- class trapez:protected paralelogram
- {
- public:
- trapez(int latura1, int latura2, punct temp1, punct temp2):paralelogram(latura1, latura2, temp1, temp2) {}
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement