Thursday, January 19, 2006

What is the Virtual Function ?

A virtual function is a member of base class that can be overridden by a derived class. If the virtual function is not overridden by the derived class, the base class definition is used.

// virtual members
#include
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
virtual int area (void)
{ return (0); }
};
class CRectangle: public CPolygon {
public:
int area (void)
{ return (width * height); }
};
class CTriangle: public CPolygon {
public:
int area (void)
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
CPolygon poly;
CPolygon * ppoly1 = ▭
CPolygon * ppoly2 = &trgl;
CPolygon * ppoly3 = &poly;
ppoly1->set_values (4,5);
ppoly2->set_values (4,5);
ppoly3->set_values (4,5);
cout <<>area() <<>area() <<>area() << endl; return 0; }
References:
http://people.msoe.edu/~tritt/clang.html#toc
http://www.cplusplus.com/

No comments: