1 #include<iostream>
2 using namespace std;
3 class Shape
4 {
5 public:
6 Shape(){}
7 ~Shape(){}
8 virtual float getArea() {}
9 };
10 class Circle:public Shape
11 {
12 private:
13 float itsRadius;
14 public:
15 Circle(float radius):itsRadius(radius){}
16 ~Circle(){}
17 float getArea()
18 {
19 return 3.14*itsRadius*itsRadius;
20 }
21 };
22 class Rectangle:public Shape
23 {
24 private:
25 float itsWidth;
26 float itsLength;
27 public:
28 Rectangle(float len,float width):itsLength(len),itsWidth(width){}
29 ~Rectangle(){}
30 float getArea()
31 {
32 return itsLength*itsWidth;
33 }
34 };
35 class Square:public Rectangle
36 {
37 public:
38 Square(float len):Rectangle(len,len){}
39 ~Square(){}
40 };
41 int main()
42 {
43 Shape*sp;
44 sp=new Circle(5);
45 cout<<"the area of the Circle is"<<sp->getArea()<<endl;
46 delete sp;
47 sp=new Rectangle(4,6);
48 cout<<"the area of the Rectangle is"<<sp->getArea()<<endl;
49 delete sp;
50 sp=new Square(5);
51 cout<<"the area of the Square is"<<sp->getArea()<<endl;
52 delete sp;
53 }