Rectangle.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include "geometry.h"
  3. class Rectangle :
  4. public Geometry_figure
  5. {
  6. private:
  7. double sides[2];
  8. void calc_sides();
  9. public:
  10. template <class value_class> Rectangle(value_class x1, value_class y1, value_class x2, value_class y2, value_class x3, value_class y3,value_class x4, value_class y4);
  11. template <class value_class> Rectangle(value_class A, value_class B);
  12. Rectangle();
  13. Rectangle(Point A, Point B, Point C, Point D);
  14. double calc_area();
  15. double calc_perimeter();
  16. void name();
  17. };
  18. template<class value_class>
  19. inline Rectangle::Rectangle(value_class x1, value_class y1, value_class x2, value_class y2, value_class x3, value_class y3, value_class x4, value_class y4)
  20. {
  21. dots.push_back( Point(x1,y1));
  22. dots.push_back(Point(x2, y2));
  23. dots.push_back(Point(x3, y3));
  24. dots.push_back(Point(x4, y4));
  25. calc_sides();
  26. }
  27. template<class value_class>
  28. inline Rectangle::Rectangle(value_class A, value_class B)
  29. {
  30. sides[0] = (double)(A);
  31. sides[1] = (double)(B);
  32. }