diff options
sem 14
1 files changed, 33 insertions, 0 deletions
| -rw-r--r-- | Sem. 14/Collection/ShapesCollection.h | 33 |
diff --git a/Sem. 14/Collection/ShapesCollection.h b/Sem. 14/Collection/ShapesCollection.h new file mode 100644 index 0000000..0a9638d --- /dev/null +++ b/Sem. 14/Collection/ShapesCollection.h @@ -0,0 +1,33 @@ +#include "../Shapes/Circle.h" +#include "../Shapes/Rectangle.h" +#include "../Shapes/Triangle.h" +#include "../Shapes/Rhombus.h" +#include "../Shapes/Square.h" +#include <vector> + +class ShapesCollection +{ + std::vector<Shape*> collection; + + void free(); + void copyFrom(const ShapesCollection& other); + +public: + + //factory + + void addCircle(double x, double y, double radius); + void addRectangle(double x1, double y1, double x3, double y3); + void addTriangle(double x1, double y1, double x2, double y2, double x3, double y3); + void addRhombus(double x1, double y1, double x2, double y2); + void addSquare(double x1, double y2, double sideLength); + + void printAreas(); + void printPers(); + + ShapesCollection() = default; + ShapesCollection(const ShapesCollection& other); + ShapesCollection& operator=(const ShapesCollection& other); + + ~ShapesCollection(); +};
\ No newline at end of file |
