Website Summary Files Commits Branches @commit @diff @stats
path: root / Polymorphism / Figures
diff options
context:
space:
mode:
Commitdb44aea398b738a795ce6ed681856d16f554dba7 (patch)
Author
 Angeld55 <achi_d@abv.bg>
2019-09-19 21:22:04 +0300
Committer
 GitHub <noreply@github.com>
2019-09-19 21:22:04 +0300
Files97ee7e03a253d0f3fd2be73cb67def7a436dc935 /Polymorphism/Figures
Object-oriented_programming_FMI-db44aea398b738a795ce6ed681856d16f554dba7.tar
Object-oriented_programming_FMI-db44aea398b738a795ce6ed681856d16f554dba7.tar.gz
Object-oriented_programming_FMI-db44aea398b738a795ce6ed681856d16f554dba7.zip
Parent1642c3257456591480c6179e5d4d377741ede6c8 (diff)
Update Figure.hpp
1 files changed, 5 insertions, 17 deletions
-rw-r--r--Polymorphism/Figures/Figure.hpp22
diff --git a/Polymorphism/Figures/Figure.hpp b/Polymorphism/Figures/Figure.hpp
index 8381ae7..ba97ccc 100644
--- a/Polymorphism/Figures/Figure.hpp
+++ b/Polymorphism/Figures/Figure.hpp
@@ -23,7 +23,7 @@ struct Point
}
};
-class Figure
+class Figure //Този клас е абстрактен - не можем да правим обекти от него.
{
Point* points;
@@ -38,8 +38,11 @@ public:
void setPoint(int ind, int x, int y);
const Point& getPoint(int ind);
+ //Тези функции са виртуални -> Във всеки неабстрактен наследник трябва да бъдат разписани отделно тези функции.
+ //То е и логично - лице на правоъгълник и лице на триъгълник се смята по различен начин, нали?
+ // Не можем още тук да дефинираме някаква обща формула, която да върши работа за всички фигури.
virtual double getPer() = 0;
- virtual double getArea()= 0;
+ virtual double getArea()= 0;
};
@@ -96,21 +99,6 @@ const Point& Figure::getPoint(int ind)
}
-
-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;
- }
-
-
}