-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathShape Class.cpp
More file actions
50 lines (44 loc) · 1 KB
/
Shape Class.cpp
File metadata and controls
50 lines (44 loc) · 1 KB
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
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class Shape
{
public:
Shape()
{ }
virtual double area()=0;
virtual double perimeter()=0;
};
class Circle:public Shape
{
double radius;
public:
Circle():radius(0)
{}
Circle(double val):radius(0)
{setRadius(val);}
void setRadius(double val){if(val>=0)radius=val;}
double area(){return 2*3.14*radius*radius;}
double perimeter(){return 2*3.14*radius;}
};
class Rectangle:public shape
{
double length,width;
public:
Rectangle():length(0),width(0)
{ }
Rectangle(double l,double w):length(0),width(0)
{ setLength(l);setWidth(w);}
void setLength(double val){if(val>=0)length=val;}
void setWidth(double val){if(val>=0)width=val;}
double area(){return length*width;}
double rec_perimeter(){return 2*(length+width);}
};
int main()
{
Circle c1(5);
Rectangle r(2,5);
cout<<c1.area()<<endl;
cout<<r.area()<<endl;
return 0;
}