Showing posts with label Virtual. Show all posts
Showing posts with label Virtual. Show all posts

Virtual Inheritance in C++


#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";
      }
};

/* derived2 inherits virtual function vfunc()
from derived1. */

class derived2 : public derived1
{
      public:
// vfunc() is still virtual

            void vfunc()
            {
                  cout << "This is derived2's vfunc().\n";
            }
};

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(); // access derived2's vfunc()
      getch();
      return 0;
}

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;
}

Pure Virtual Function


//A program to illustrate how to declare a pure virtual function and equate it to zero as it
//   does not have any function parts.//


#include <iostream.h>
#include <conio.h>
class base {
   private :
      int x;
      float y;
   public :
      virtual inline void getdata() = 0;
      virtual inline void display() = 0;
};
class derivedB : public base {
   private :
      long int rollno;
      char name[20];
   public :
      void getdata();
      void display();
};
void derivedB :: getdata()
{
   cout << " enter roll no of student \n";
   cin >> rollno;
   cout << " enter name of a student \n";
   cin >> name;
}
void derivedB :: display()
{
   cout << " roll number, stdent's name \n";
   cout <<  rollno << '\t' << name << endl;
}
void main()
{
  clrscr();
   base *ptr;
   derivedB obj;
   ptr=&obj;
   ptr->getdata();
   ptr->display();
   getch();
}
Custom Search