Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / Example_polymorphism / main.cpp
diff options
context:
space:
mode:
1 files changed, 41 insertions, 0 deletions
-rw-r--r--Sem. 12/Example_polymorphism/main.cpp41
diff --git a/Sem. 12/Example_polymorphism/main.cpp b/Sem. 12/Example_polymorphism/main.cpp
new file mode 100644
index 0000000..89a5082
--- /dev/null
+++ b/Sem. 12/Example_polymorphism/main.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+using namespace std;
+
+#include "Rectangle.h"
+#include "Circle.h"
+#include "Triangle.h"
+
+
+void printAreas(const Shape* const * shapes, size_t shapesCount)
+{
+ for (int i = 0; i < shapesCount; i++)
+ cout << shapes[i]->getArea() <<endl;
+}
+void printPers(const Shape* const * shapes, size_t shapesCount)
+{
+ for (int i = 0; i < shapesCount; i++)
+ cout << shapes[i]->getPer() << endl;
+}
+
+void freeCollection(Shape** shapes, size_t shapesCount)
+{
+ for (int i = 0; i < shapesCount; i++)
+ delete shapes[i];
+ delete[] shapes;
+}
+int main()
+{
+ Shape** arr = new Shape*[4];
+
+ arr[0] = new Rectangle(3, 4, 6, 8);
+ arr[1] = new Circle(3, 3, 4);
+ arr[2] = new Circle(1, 4, 5);
+ arr[3] = new Triangle(1, 1, 2, 2, 3, 3);
+
+ printAreas(arr, 4);
+ printPers(arr, 4);
+
+ freeCollection(arr, 4);
+
+
+} \ No newline at end of file