From 92e8d2a1aefce843e9635632cc13b9c512fea734 Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Wed, 20 May 2020 03:04:17 +0300 Subject: fixed poly --- Polymorphism/Shapes/Shape.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Polymorphism/Shapes/Shape.cpp (limited to 'Polymorphism/Shapes/Shape.cpp') diff --git a/Polymorphism/Shapes/Shape.cpp b/Polymorphism/Shapes/Shape.cpp new file mode 100644 index 0000000..0751108 --- /dev/null +++ b/Polymorphism/Shapes/Shape.cpp @@ -0,0 +1,50 @@ +#include "Shape.h" + +Shape::Shape(int pointsCount) +{ + points = new Point[pointsCount]; + this->pointsCount = pointsCount; +} + +void Shape::setPoint(int x, int y, int ind) +{ + Point current(x, y); + points[ind] = current; + +} + +const Point& Shape::getPoint(int ind) +{ + return points[ind]; +} + +void Shape::CopyFrom(const Shape& other) +{ + points = new Point[other.pointsCount]; + pointsCount = other.pointsCount; + + for (int i = 0; i < pointsCount; i++) + points[i] = other.points[i]; +} +void Shape::Free() +{ + delete[] points; + pointsCount = 0; +} +Shape::Shape(const Shape& other) +{ + CopyFrom(other); +} +Shape& Shape::operator=(const Shape& other) +{ + if (this != &other) + { + Free(); + CopyFrom(other); + } + return *this; +} +Shape::~Shape() +{ + Free(); +} -- cgit v1.3.1-23-gd82d