-
Notifications
You must be signed in to change notification settings - Fork 0
/
polymorphism.cpp
38 lines (32 loc) · 724 Bytes
/
polymorphism.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
A class that declares or inherits a virtual function
is called a polymorphic class
*/
#include <iostream>
using namespace std;
class CPolygon {
protected:
int width, height;
public:
void set_values(int a, int b) {width = a; height = b;};
virtual int area() {return (0);};
};
class CRectangle : public CPolygon {
public:
int area() {return (width * height);};
};
class CTriangle : public CPolygon {
public:
int area() {return (width * height * 0.5);};
};
int main()
{
CPolygon poly;
CRectangle rect;
CTriangle trgl;
CPolygon *polyptr[3] = {&poly, &rect, &trgl};
for (int ipoly = 0; ipoly < 3; ipoly++) {
polyptr[ipoly]->set_values(4, 5);
cout << polyptr[ipoly]->area() << endl;
}
}