From 495fe9ae299e81c213161d992d05cc11a403a1d7 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 20 May 2020 03:02:00 +0300 Subject: Add files via upload --- Polymorphism/Shape.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Polymorphism/Shape.cpp (limited to 'Polymorphism/Shape.cpp') diff --git a/Polymorphism/Shape.cpp b/Polymorphism/Shape.cpp new file mode 100644 index 0000000..787ec82 --- /dev/null +++ b/Polymorphism/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