Website Summary Files Commits Branches @commit @diff @stats
path: root / Polymorphism
diff options
context:
space:
mode:
Commit92e8d2a1aefce843e9635632cc13b9c512fea734 (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-05-20 03:04:17 +0300
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-05-20 03:04:17 +0300
Files0f853ea7b9b5eb2a78c8fadff7c7ead659394d3e /Polymorphism
Object-oriented_programming_FMI-92e8d2a1aefce843e9635632cc13b9c512fea734.tar
Object-oriented_programming_FMI-92e8d2a1aefce843e9635632cc13b9c512fea734.tar.gz
Object-oriented_programming_FMI-92e8d2a1aefce843e9635632cc13b9c512fea734.zip
Parent495fe9ae299e81c213161d992d05cc11a403a1d7 (diff)
fixed poly
19 files changed, 345 insertions, 541 deletions
-rw-r--r--Polymorphism/Figures/Circle.hpp22
-rw-r--r--Polymorphism/Figures/Figure.hpp101
-rw-r--r--Polymorphism/Figures/FiguresPIC.pngbin39470 -> 0 bytes
-rw-r--r--Polymorphism/Figures/Rectangle.hpp21
-rw-r--r--Polymorphism/Figures/Triangle.hpp27
-rw-r--r--Polymorphism/Figures/main.cpp24
-rw-r--r--Polymorphism/Shapes/Circle.cpp (renamed from Polymorphism/Circle.cpp)36
-rw-r--r--Polymorphism/Shapes/Circle.h (renamed from Polymorphism/Circle.h)30
-rw-r--r--Polymorphism/Shapes/Point.h (renamed from Polymorphism/Point.h)34
-rw-r--r--Polymorphism/Shapes/Rectangle.cpp (renamed from Polymorphism/Rectangle.cpp)46
-rw-r--r--Polymorphism/Shapes/Rectangle.h (renamed from Polymorphism/Rectangle.h)20
-rw-r--r--Polymorphism/Shapes/Shape.cpp (renamed from Polymorphism/Shape.cpp)100
-rw-r--r--Polymorphism/Shapes/Shape.h (renamed from Polymorphism/Shape.h)52
-rw-r--r--Polymorphism/Shapes/ShapeCollection.cpp (renamed from Polymorphism/ShapeCollection.cpp)174
-rw-r--r--Polymorphism/Shapes/ShapeCollection.h (renamed from Polymorphism/ShapeCollection.h)58
-rw-r--r--Polymorphism/Shapes/Source.cpp (renamed from Polymorphism/Source.cpp)58
-rw-r--r--Polymorphism/Shapes/Triangle.cpp (renamed from Polymorphism/Triangle.cpp)60
-rw-r--r--Polymorphism/Shapes/Triangle.h (renamed from Polymorphism/Triangle.h)22
-rw-r--r--Polymorphism/Shapes/s1
diff --git a/Polymorphism/Figures/Circle.hpp b/Polymorphism/Figures/Circle.hpp
deleted file mode 100644
index 282ed36..0000000
--- a/Polymorphism/Figures/Circle.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-#include "Figure.hpp"
-class Circle : public Figure
-{
- int radius;
-public:
- Circle(int x, int y, int r) : Figure(1)
- {
- setPoint(0, x, y);
- if (r < 0)
- r = 0;
- radius = r;
- }
- double getPer()
- {
- return 2 * PI * radius;
- }
- double getArea()
- {
- return radius*radius*PI;
- }
-};
diff --git a/Polymorphism/Figures/Figure.hpp b/Polymorphism/Figures/Figure.hpp
deleted file mode 100644
index cd13b7d..0000000
--- a/Polymorphism/Figures/Figure.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#pragma once
-
-#include<iostream>
-#include <cmath>
-
-using namespace std;
-const double PI = 3.1415;
-
-struct Point
-{
- int x;
- int y;
- Point(int x, int y)
- {
- this->x = x;
- this->y = y;
- }
- Point()
- {
- x = y = 0;
- }
- double getDistTo(const Point& other) const
- {
- return sqrt((x - other.x)*(x - other.x) + (y - other.y)*(y - other.y));
- }
-};
-
-class Figure //Този клас е абстрактен - не можем да правим обекти от него.
-{
-
- Point* points;
- int pointsCount;
- void CopyFrom(const Figure& other);
- void Free();
-public:
- Figure(int pointsCount);
- Figure(const Figure& other);
- Figure& operator=(const Figure& other);
- ~Figure();
- void setPoint(int ind, int x, int y);
- const Point& getPoint(int ind);
-
- //Тези функции са абстрактни -> Във всеки неабстрактен наследник трябва да бъдат разписани отделно тези функции.
- //То е и логично - лице на правоъгълник и лице на триъгълник се смята по различен начин, нали?
- // Не можем още тук да дефинираме някаква обща формула, която да върши работа за всички фигури.
- virtual double getPer() = 0;
- virtual double getArea()= 0;
-
-
-};
-
-void Figure::CopyFrom(const Figure& other)
-{
- points = new Point[other.pointsCount];
- for (int i = 0; i < other.pointsCount; i++)
- points[i] = other.points[i];
- pointsCount = other.pointsCount;
-}
-void Figure::Free()
-{
- delete[] points;
- pointsCount = 0;
-}
-Figure::Figure(const Figure& other)
-{
- CopyFrom(other);
-}
-Figure& Figure::operator=(const Figure& other)
-{
- if (this != &other)
- {
- Free();
- CopyFrom(other);
- }
- return *this;
-}
-Figure::~Figure()
-{
- Free();
-}
-Figure::Figure(int pointsCount)
-{
- points = new Point[pointsCount];
- this->pointsCount = pointsCount;
-}
-
-void Figure::setPoint(int ind, int x, int y)
-{
- if (ind < 0 || ind >= pointsCount)
- return;
- points[ind].x = x;
- points[ind].y = y;
-}
-
-const Point& Figure::getPoint(int ind)
-{
- if (ind < 0 || ind >= pointsCount)
- throw "Invalid index";
- return points[ind];
-
-}
diff --git a/Polymorphism/Figures/FiguresPIC.png b/Polymorphism/Figures/FiguresPIC.png
deleted file mode 100644
index 69a478b..0000000
--- a/Polymorphism/Figures/FiguresPIC.png
+++ /dev/null
Binary files differ
diff --git a/Polymorphism/Figures/Rectangle.hpp b/Polymorphism/Figures/Rectangle.hpp
deleted file mode 100644
index e1a4ea8..0000000
--- a/Polymorphism/Figures/Rectangle.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-#include "Figure.hpp"
-class Rectangle : public Figure
-{
-public:
- Rectangle(int x1, int y1, int x2, int y2) : Figure(4)
- {
- setPoint(0, x1, y1);
- setPoint(1, x2, y1);
- setPoint(2, x2, y2);
- setPoint(3, x1, y2);
- }
- double getPer()
- {
- return 2 * (getPoint(0).getDistTo(getPoint(1)) + getPoint(0).getDistTo(getPoint(3)));
- }
- double getArea()
- {
- return getPoint(0).getDistTo(getPoint(1))* getPoint(1).getDistTo(getPoint(2));
- }
-};
diff --git a/Polymorphism/Figures/Triangle.hpp b/Polymorphism/Figures/Triangle.hpp
deleted file mode 100644
index 5d16111..0000000
--- a/Polymorphism/Figures/Triangle.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-
-#include "Figure.hpp"
-class Triangle : public Figure
-{
-public:
- Triangle(int x1, int y1, int x2, int y2, int x3, int y3) :Figure(3)
- {
- setPoint(0, x1, y1);
- setPoint(1, x2, y2);
- setPoint(2, x3, y3);
- }
- double getSide(int side)
- {
- return getPoint(side).getDistTo(getPoint((side+1)%3));
- }
- double getPer()
- {
- return getSide(0)+getSide(1)+getSide(2);
- }
- double getArea()
- {
- //Херонова формула
- double halfP = getPer()/2;
- return sqrt(halfP * (halfP-getSide(0))*(halfP-getSide(1))*(halfP-getSide(2)));
- }
-};
diff --git a/Polymorphism/Figures/main.cpp b/Polymorphism/Figures/main.cpp
deleted file mode 100644
index 2b4eb23..0000000
--- a/Polymorphism/Figures/main.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#include "Figure.hpp"
-#include "Triangle.hpp"
-#include "Rectangle.hpp"
-#include "Circle.hpp"
-
-
-int main()
-{
- Figure** arr= new Figure*[3];
- arr[0] = new Triangle(15, 15, 15, 30, 50, 30);
- arr[1] = new Rectangle(15, 15, 50, 30);
- arr[2] = new Circle(1, 2, 9);
-
- for (int i = 0; i < 3; i++)
- {
- cout << arr[i]->getPer()<<endl;
- cout << arr[i]->getArea()<<endl;
- }
-
-
-}
-
-
diff --git a/Polymorphism/Circle.cpp b/Polymorphism/Shapes/Circle.cpp
index 6ba083f..e625123 100644
--- a/Polymorphism/Circle.cpp
+++ b/Polymorphism/Shapes/Circle.cpp
@@ -1,19 +1,19 @@
-#include "Circle.h"
-
-Circle::Circle(int x, int y, int r) : Shape(1), radius(r)
-{
- setPoint(x, y, 0);
-}
-double Circle::getArea()
-{
- return PI * radius * radius;
-}
-double Circle::getPer()
-{
- return 2 * PI * radius;
-}
-Shape* Circle::clone()
-{
- Circle* newCircle = new Circle(*this);
- return newCircle;
+#include "Circle.h"
+
+Circle::Circle(int x, int y, int r) : Shape(1), radius(r)
+{
+ setPoint(x, y, 0);
+}
+double Circle::getArea()
+{
+ return PI * radius * radius;
+}
+double Circle::getPer()
+{
+ return 2 * PI * radius;
+}
+Shape* Circle::clone()
+{
+ Circle* newCircle = new Circle(*this);
+ return newCircle;
} \ No newline at end of file
diff --git a/Polymorphism/Circle.h b/Polymorphism/Shapes/Circle.h
index ce355bf..c648690 100644
--- a/Polymorphism/Circle.h
+++ b/Polymorphism/Shapes/Circle.h
@@ -1,16 +1,16 @@
-#include "Shape.h"
-
-const double PI = 3.14;
-class Circle : public Shape
-{
-
- int radius;
-public:
- Circle(int x, int y, int radius);
-
- double getArea();
- double getPer();
-
- Shape* clone();
-
+#include "Shape.h"
+
+const double PI = 3.14;
+class Circle : public Shape
+{
+
+ int radius;
+public:
+ Circle(int x, int y, int radius);
+
+ double getArea();
+ double getPer();
+
+ Shape* clone();
+
}; \ No newline at end of file
diff --git a/Polymorphism/Point.h b/Polymorphism/Shapes/Point.h
index f00b37d..acacb85 100644
--- a/Polymorphism/Point.h
+++ b/Polymorphism/Shapes/Point.h
@@ -1,18 +1,18 @@
-#pragma once
-#include <iostream>
-struct Point
-{
- int x;
- int y;
- Point(int x, int y)
- {
- this->x = x;
- this->y = y;
- }
- Point() : Point(0,0)
- {}
- double getDist(const Point& other) const
- {
- return sqrt((x - other.x)*(x - other.x) + (y - other.y) * (y - other.y));
- }
+#pragma once
+#include <iostream>
+struct Point
+{
+ int x;
+ int y;
+ Point(int x, int y)
+ {
+ this->x = x;
+ this->y = y;
+ }
+ Point() : Point(0,0)
+ {}
+ double getDist(const Point& other) const
+ {
+ return sqrt((x - other.x)*(x - other.x) + (y - other.y) * (y - other.y));
+ }
}; \ No newline at end of file
diff --git a/Polymorphism/Rectangle.cpp b/Polymorphism/Shapes/Rectangle.cpp
index 8f9d1fb..b684c50 100644
--- a/Polymorphism/Rectangle.cpp
+++ b/Polymorphism/Shapes/Rectangle.cpp
@@ -1,24 +1,24 @@
-#include "Rectangle.h"
-
-
-Rectangle::Rectangle(int x1, int y1, int x3, int y3) : Shape(4)
-{
- setPoint(x1, y1, 0);
- setPoint(x3, y3, 2);
- setPoint(x1, y3, 1);
- setPoint(x3, y1, 3);
-}
-
-double Rectangle::getPer()
-{
- return 2 * (getPoint(0).getDist(getPoint(1)) + getPoint(1).getDist(getPoint(2)) );
-}
-double Rectangle::getArea()
-{
- return getPoint(0).getDist(getPoint(1)) * getPoint(1).getDist(getPoint(2));
-}
-Shape* Rectangle::clone()
-{
- Rectangle* newRect = new Rectangle(*this);
- return newRect;
+#include "Rectangle.h"
+
+
+Rectangle::Rectangle(int x1, int y1, int x3, int y3) : Shape(4)
+{
+ setPoint(x1, y1, 0);
+ setPoint(x3, y3, 2);
+ setPoint(x1, y3, 1);
+ setPoint(x3, y1, 3);
+}
+
+double Rectangle::getPer()
+{
+ return 2 * (getPoint(0).getDist(getPoint(1)) + getPoint(1).getDist(getPoint(2)) );
+}
+double Rectangle::getArea()
+{
+ return getPoint(0).getDist(getPoint(1)) * getPoint(1).getDist(getPoint(2));
+}
+Shape* Rectangle::clone()
+{
+ Rectangle* newRect = new Rectangle(*this);
+ return newRect;
} \ No newline at end of file
diff --git a/Polymorphism/Rectangle.h b/Polymorphism/Shapes/Rectangle.h
index 7c7e3d0..681a021 100644
--- a/Polymorphism/Rectangle.h
+++ b/Polymorphism/Shapes/Rectangle.h
@@ -1,11 +1,11 @@
-#include "Shape.h"
-class Rectangle : public Shape
-{
-public:
- Rectangle(int x1, int y1, int x3, int y3);
-
- double getPer();
- double getArea();
-
- Shape* clone();
+#include "Shape.h"
+class Rectangle : public Shape
+{
+public:
+ Rectangle(int x1, int y1, int x3, int y3);
+
+ double getPer();
+ double getArea();
+
+ Shape* clone();
}; \ No newline at end of file
diff --git a/Polymorphism/Shape.cpp b/Polymorphism/Shapes/Shape.cpp
index 787ec82..0751108 100644
--- a/Polymorphism/Shape.cpp
+++ b/Polymorphism/Shapes/Shape.cpp
@@ -1,50 +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();
-}
+#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();
+}
diff --git a/Polymorphism/Shape.h b/Polymorphism/Shapes/Shape.h
index fbce027..f31e42e 100644
--- a/Polymorphism/Shape.h
+++ b/Polymorphism/Shapes/Shape.h
@@ -1,27 +1,27 @@
-#pragma once
-
-#include "Point.h"
-
-class Shape
-{
- Point* points;
- int pointsCount;
-
- void CopyFrom(const Shape& other);
- void Free();
-
-public:
- Shape(int pointsCount);
- Shape(const Shape& other);
- Shape& operator=(const Shape& other);
- virtual ~Shape();
-
- void setPoint(int x, int y, int ind);
- const Point& getPoint(int ind);
-
- virtual double getPer() =0;
- virtual double getArea() = 0;
-
- virtual Shape* clone() = 0;
-
+#pragma once
+
+#include "Point.h"
+
+class Shape
+{
+ Point* points;
+ int pointsCount;
+
+ void CopyFrom(const Shape& other);
+ void Free();
+
+public:
+ Shape(int pointsCount);
+ Shape(const Shape& other);
+ Shape& operator=(const Shape& other);
+ virtual ~Shape();
+
+ void setPoint(int x, int y, int ind);
+ const Point& getPoint(int ind);
+
+ virtual double getPer() =0;
+ virtual double getArea() = 0;
+
+ virtual Shape* clone() = 0;
+
}; \ No newline at end of file
diff --git a/Polymorphism/ShapeCollection.cpp b/Polymorphism/Shapes/ShapeCollection.cpp
index f2c27f2..8fcad3c 100644
--- a/Polymorphism/ShapeCollection.cpp
+++ b/Polymorphism/Shapes/ShapeCollection.cpp
@@ -1,88 +1,88 @@
-#include "ShapeCollection.h"
-
-ShapeCollection::ShapeCollection()
-{
- count = 0;
- capacity = 8;
-
- data = new Shape*[capacity];
-}
-
-void ShapeCollection::AddCircle(int x1, int y1, int r)
-{
- Circle* current = new Circle(x1, y1, r);
- Add(current);
-
-}
-void ShapeCollection::AddTriagnle(int x1, int y1, int x2, int y2, int x3, int y3)
-{
- Triangle* current = new Triangle(x1, y1, x2, y2, x3, y3);
- Add(current);
-}
-void ShapeCollection::AddRect(int x1, int y1, int x2, int y2)
-{
- Rectangle* current = new Rectangle(x1, y1, x2, y2);
- Add(current);
-}
-void ShapeCollection::Add(Shape* currentShape)
-{
- if (count == capacity)
- Resize();
- data[count++] = currentShape;
-}
-void ShapeCollection::Free()
-{
- for (int i = 0; i < count; i++)
- delete data[i];
-
- delete[] data;
-}
-void ShapeCollection::CopyFrom(const ShapeCollection& other)
-{
- data = new Shape*[other.count];
- capacity = other.capacity;
- count = other.count;
- for (int i = 0; i < other.count; i++)
- data[i] = other.data[i]->clone();
-
-}
-ShapeCollection::ShapeCollection(const ShapeCollection& other)
-{
- CopyFrom(other);
-}
-ShapeCollection& ShapeCollection::operator = (const ShapeCollection& other)
-{
- if (this != &other)
- {
- Free();
- CopyFrom(other);
- }
- return *this;
-}
-ShapeCollection::~ShapeCollection()
-{
- Free();
-}
-void ShapeCollection::Resize()
-{
- Shape** temp = new Shape*[capacity * 2];
- capacity *= 2;
- for (int i = 0; i < count; i++)
- temp[i] = data[i];
- delete[] data;
- data = temp;
-
-
-}
-void ShapeCollection::PrintAllAreas()
-{
- for (int i = 0; i < count; i++)
- std::cout << data[i]->getArea() << " ";
- std::cout<<std::endl;
-}
-void ShapeCollection::PrintAllPers()
-{
- for (int i = 0; i < count; i++)
- std::cout << data[i]->getPer() << " ";
- std::cout << std::endl;
+#include "ShapeCollection.h"
+
+ShapeCollection::ShapeCollection()
+{
+ count = 0;
+ capacity = 8;
+
+ data = new Shape*[capacity];
+}
+
+void ShapeCollection::AddCircle(int x1, int y1, int r)
+{
+ Circle* current = new Circle(x1, y1, r);
+ Add(current);
+
+}
+void ShapeCollection::AddTriagnle(int x1, int y1, int x2, int y2, int x3, int y3)
+{
+ Triangle* current = new Triangle(x1, y1, x2, y2, x3, y3);
+ Add(current);
+}
+void ShapeCollection::AddRect(int x1, int y1, int x2, int y2)
+{
+ Rectangle* current = new Rectangle(x1, y1, x2, y2);
+ Add(current);
+}
+void ShapeCollection::Add(Shape* currentShape)
+{
+ if (count == capacity)
+ Resize();
+ data[count++] = currentShape;
+}
+void ShapeCollection::Free()
+{
+ for (int i = 0; i < count; i++)
+ delete data[i];
+
+ delete[] data;
+}
+void ShapeCollection::CopyFrom(const ShapeCollection& other)
+{
+ data = new Shape*[other.count];
+ capacity = other.capacity;
+ count = other.count;
+ for (int i = 0; i < other.count; i++)
+ data[i] = other.data[i]->clone();
+
+}
+ShapeCollection::ShapeCollection(const ShapeCollection& other)
+{
+ CopyFrom(other);
+}
+ShapeCollection& ShapeCollection::operator = (const ShapeCollection& other)
+{
+ if (this != &other)
+ {
+ Free();
+ CopyFrom(other);
+ }
+ return *this;
+}
+ShapeCollection::~ShapeCollection()
+{
+ Free();
+}
+void ShapeCollection::Resize()
+{
+ Shape** temp = new Shape*[capacity * 2];
+ capacity *= 2;
+ for (int i = 0; i < count; i++)
+ temp[i] = data[i];
+ delete[] data;
+ data = temp;
+
+
+}
+void ShapeCollection::PrintAllAreas()
+{
+ for (int i = 0; i < count; i++)
+ std::cout << data[i]->getArea() << " ";
+ std::cout<<std::endl;
+}
+void ShapeCollection::PrintAllPers()
+{
+ for (int i = 0; i < count; i++)
+ std::cout << data[i]->getPer() << " ";
+ std::cout << std::endl;
} \ No newline at end of file
diff --git a/Polymorphism/ShapeCollection.h b/Polymorphism/Shapes/ShapeCollection.h
index 018b0af..36f6092 100644
--- a/Polymorphism/ShapeCollection.h
+++ b/Polymorphism/Shapes/ShapeCollection.h
@@ -1,30 +1,30 @@
-#include "Circle.h"
-#include "Rectangle.h"
-#include "Triangle.h"
-
-class ShapeCollection
-{
- Shape** data;
- int count;
- int capacity;
-
- void Resize();
-
- void Add(Shape* currentShape);
-
- void CopyFrom(const ShapeCollection& other);
- void Free();
-public:
- ShapeCollection();
-
- ShapeCollection(const ShapeCollection& other);
- ShapeCollection& operator=(const ShapeCollection& other);
- ~ShapeCollection();
-
- void AddCircle(int x1,int x2,int r);
- void AddTriagnle(int x1,int y1,int x2,int y2,int x3,int y3);
- void AddRect(int x1, int y1, int x2, int y2);
-
- void PrintAllAreas();
- void PrintAllPers();
+#include "Circle.h"
+#include "Rectangle.h"
+#include "Triangle.h"
+
+class ShapeCollection
+{
+ Shape** data;
+ int count;
+ int capacity;
+
+ void Resize();
+
+ void Add(Shape* currentShape);
+
+ void CopyFrom(const ShapeCollection& other);
+ void Free();
+public:
+ ShapeCollection();
+
+ ShapeCollection(const ShapeCollection& other);
+ ShapeCollection& operator=(const ShapeCollection& other);
+ ~ShapeCollection();
+
+ void AddCircle(int x1,int x2,int r);
+ void AddTriagnle(int x1,int y1,int x2,int y2,int x3,int y3);
+ void AddRect(int x1, int y1, int x2, int y2);
+
+ void PrintAllAreas();
+ void PrintAllPers();
}; \ No newline at end of file
diff --git a/Polymorphism/Source.cpp b/Polymorphism/Shapes/Source.cpp
index 2ab42e5..3381111 100644
--- a/Polymorphism/Source.cpp
+++ b/Polymorphism/Shapes/Source.cpp
@@ -1,30 +1,30 @@
-
-using namespace std;
-#include <fstream>
-#include <vector>
-#include "ShapeCollection.h"
-
-int main()
-{
- ShapeCollection sh;
-
- sh.AddCircle(3, 3, 5);
- sh.AddTriagnle(1, 4, 2, 11, 7, 4);
- sh.AddRect(1, 1, 4, 4);
-
- sh.PrintAllAreas();
-
-/* lamda fucntion example
- std::vector<Circle> s;
- s.push_back(Circle(3, 4, 4));
- s.push_back(Circle(1, 2, 3));
-
- std::sort(s.begin(), s.end(),
- [](Circle& lhs, Circle& rhs) -> bool
- {
- return lhs.getArea() < rhs.getArea();
- });*/
-
-
-
+
+using namespace std;
+#include <fstream>
+#include <vector>
+#include "ShapeCollection.h"
+
+int main()
+{
+ ShapeCollection sh;
+
+ sh.AddCircle(3, 3, 5);
+ sh.AddTriagnle(1, 4, 2, 11, 7, 4);
+ sh.AddRect(1, 1, 4, 4);
+
+ sh.PrintAllAreas();
+
+/* lamda fucntion example
+ std::vector<Circle> s;
+ s.push_back(Circle(3, 4, 4));
+ s.push_back(Circle(1, 2, 3));
+
+ std::sort(s.begin(), s.end(),
+ [](Circle& lhs, Circle& rhs) -> bool
+ {
+ return lhs.getArea() < rhs.getArea();
+ });*/
+
+
+
} \ No newline at end of file
diff --git a/Polymorphism/Triangle.cpp b/Polymorphism/Shapes/Triangle.cpp
index 18dd93e..545e2a6 100644
--- a/Polymorphism/Triangle.cpp
+++ b/Polymorphism/Shapes/Triangle.cpp
@@ -1,31 +1,31 @@
-#include "Triangle.h"
-
-Triangle::Triangle(int x1, int y1, int x2, int y2, int x3, int y3) : Shape(3)
-{
- setPoint(x1, y1, 0);
- setPoint(x2, y2, 1);
- setPoint(x3, y3, 2);
-}
-
-double Triangle::getArea()
-{
- double sideA = getPoint(0).getDist(getPoint(1));
- double sideB = getPoint(1).getDist(getPoint(2));
- double sideC = getPoint(2).getDist(getPoint(0));
-
- double halfPer = getPer() / 2;
-
- return sqrt(halfPer * (halfPer - sideA) *
- (halfPer - sideB) * (halfPer - sideC));
-}
-double Triangle::getPer()
-{
- return getPoint(0).getDist(getPoint(1)) +
- getPoint(1).getDist(getPoint(2)) +
- getPoint(2).getDist(getPoint(0));
-}
-Shape* Triangle::clone()
-{
- Triangle* newTriangle = new Triangle(*this);
- return newTriangle;
+#include "Triangle.h"
+
+Triangle::Triangle(int x1, int y1, int x2, int y2, int x3, int y3) : Shape(3)
+{
+ setPoint(x1, y1, 0);
+ setPoint(x2, y2, 1);
+ setPoint(x3, y3, 2);
+}
+
+double Triangle::getArea()
+{
+ double sideA = getPoint(0).getDist(getPoint(1));
+ double sideB = getPoint(1).getDist(getPoint(2));
+ double sideC = getPoint(2).getDist(getPoint(0));
+
+ double halfPer = getPer() / 2;
+
+ return sqrt(halfPer * (halfPer - sideA) *
+ (halfPer - sideB) * (halfPer - sideC));
+}
+double Triangle::getPer()
+{
+ return getPoint(0).getDist(getPoint(1)) +
+ getPoint(1).getDist(getPoint(2)) +
+ getPoint(2).getDist(getPoint(0));
+}
+Shape* Triangle::clone()
+{
+ Triangle* newTriangle = new Triangle(*this);
+ return newTriangle;
} \ No newline at end of file
diff --git a/Polymorphism/Triangle.h b/Polymorphism/Shapes/Triangle.h
index a8a8f57..b038e80 100644
--- a/Polymorphism/Triangle.h
+++ b/Polymorphism/Shapes/Triangle.h
@@ -1,12 +1,12 @@
-#include "Shape.h"
-
-class Triangle : public Shape
-{
-public:
- Triangle(int x1, int y1, int x2, int y2, int x3, int y3);
-
- double getArea();
- double getPer();
-
- Shape* clone();
+#include "Shape.h"
+
+class Triangle : public Shape
+{
+public:
+ Triangle(int x1, int y1, int x2, int y2, int x3, int y3);
+
+ double getArea();
+ double getPer();
+
+ Shape* clone();
}; \ No newline at end of file
diff --git a/Polymorphism/Shapes/s b/Polymorphism/Shapes/s
deleted file mode 100644
index b478595..0000000
--- a/Polymorphism/Shapes/s
+++ /dev/null
@@ -1 +0,0 @@
-s