-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path03-09_polygon.cpp
83 lines (61 loc) · 1.14 KB
/
03-09_polygon.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
using namespace std;
class Polygon {
protected:
int width, height;
public:
void set(int x, int y);
virtual void print();
};
class Rectangle: public Polygon {
public:
int area();
void print();
};
class Triangle: public Polygon {
public:
int area();
void print();
};
void callsPrint(Polygon &p);
int main() {
Polygon p;
p.set(4, 5);
p.print();
cout << endl;
Rectangle r;
r.set(4, 5);
//r.print();
callsPrint(r);
cout << "Area of rectangle is: " << r.area() << endl << endl;
Triangle t;
t.set(4, 5);
t.print();
cout << "Area of rectangle is: " << t.area() << endl;
return 0;
}
void Polygon::set(int x, int y) {
width=x;
height=y;
}
void Polygon::print() {
cout << "Width: " << width << endl;
cout << "Height: " << height << endl;
}
int Rectangle::area() {
return width*height;
}
void Rectangle::print() {
cout << "I am but a simple rectangle." << endl;
Polygon::print();
}
int Triangle::area() {
return width*height/2;
}
void Triangle::print() {
cout << "I am but a simple triangle." << endl;
Polygon::print();
}
void callsPrint(Polygon &p) {
p.print();
}