-
Notifications
You must be signed in to change notification settings - Fork 0
/
64.cpp
81 lines (67 loc) · 1.32 KB
/
64.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
#include <iostream>
#include <string>
using namespace std;
//Abstract Class
class Polygon
{
protected:
int num_sides;
double area;
string name;
public:
void show_sides_area();
virtual void calc_area()=0; //pure virtual function
};
class Triangle : public Polygon
{
private:
double base, height;
public:
Triangle(double,double);
void calc_area();
};
class Square : public Polygon
{
private:
double side_length;
public:
Square(double);
void calc_area();
};
void Polygon::show_sides_area()
{
cout<<name<<" "<<num_sides<<" sides, area = "<<area<<endl;
}
Triangle::Triangle(double base_var, double height_var):
base(base_var), height(height_var)
{
name = "Triangle";
num_sides = 3;
cout<<"Triangle constructor called."<<endl;
}
void Triangle::calc_area()
{
area = 0.5* base*height;
}
Square::Square (double side_length_var):
side_length(side_length_var)
{
name = "Square";
num_sides = 4;
cout<<"Square constructor called."<<endl;
}
void Square::calc_area()
{
area = side_length * side_length;
}
int main()
{
// Polygon p1; //error
Triangle triangle1(3.5, 2);
Square square1(2.5);
triangle1.calc_area();
triangle1.show_sides_area();
square1.calc_area();
square1.show_sides_area();
return (0);
}