Virtual Functions # 2


#include <iostream.h>
#include <conio.h>

class base
{
      public:
      virtual void vfunc()
      {
            cout << "This is base's vfunc().\n";
      }
};

class derived1 : public base
{
public:
void vfunc()
      {
            cout << "This is derived1's vfunc().\n";
      }
};

class derived2 : public base
{
      public:
      // vfunc() not overridden by derived2, base's is used
};

int main()
{
      clrscr();
      base *p, b;
      derived1 d1;
      derived2 d2;
      // point to base
      p = &b;
      p->vfunc(); // access base's vfunc()
      // point to derived1
      p = &d1;
      p->vfunc(); // access derived1's vfunc()
      // point to derived2
      p = &d2;
      p->vfunc(); // use base's vfunc()
      getch();
      return 0;
}
Custom Search