From the past few articles we have been discussing about virtual functions but we are yet to observe any of its practical use, this article would do that!
In this article we are going to show you a very simple program that illustrates the practical use of virtual functions.
Please read the code carefully!
// Practical example of
// when virtual functions are
// used
#include <iostream.h>
class area
{
protected:
int mag;
double a;
public:
area(int x){mag=x;}
double get_area(){return a;}
// pure virtual function
virtual void compute()=0;
// it is made pure as
// it couldn't have any meaningful
// definition since area can only
// be defined w.r.t something specific
};
class circle_area : public area
{
public:
circle_area(int x) : area(x){}
// now that we are referring
// to area w.r.t a circle so
// it is natural that we define
// it
void compute()
{
a=(mag*mag)*3.14;
}
};
class square_area : public area
{
public:
square_area(int x) : area(x){}
// same for this!
void compute()
{
a=mag*mag;
}
};
void main()
{
square_area sa(10);
circle_area ca(20);
sa.compute();
ca.compute();
cout<<"Area of square: "<<sa.get_area();
cout<<endl;
cout<<"Area of cirlce: "<<ca.get_area();
}
Related Articles: