A Vtable example ...
class Shape {
public:
virtual void draw() { int i=0; }
};
class Circle : public Shape {
public:
virtual void draw() { int i=0; }
};
class Rectangle : public Shape {
public:
virtual void draw() { int i=0; }
};
void drawShape( Shape *sp )
{
sp->draw();
}
int main()
{
Shape *sp1 = new Circle;
drawShape(sp1);
delete sp1;
sp1 = new Rectangle;
drawShape(sp1);
return 0;
}