Abstract Class & Pure Virtual Function

Abstract Class

An abstract class is always a base class

It contains at least one pure virtual function

We cannot create an instance of abstract class

 

Pure Virtual Function

A pure virtual function is a function with nobody

It is not defined in the base class

It is declared as:    virtual void virtualfunname()=0;

A derived class must override the function

Otherwise, the compiler will give an error

It is up to a derived class to implement the function

 

Ex:-

#include<iostream>
using namespace std;
 
class abstractinterface
 {
   public:
   virtual void numbers()=0;
   void input();
   int a, b;
 };
 
void abstractinterface::input()
  {
    cout<< "Enter the numbers\n";
    cin>>a>>b;
  }
 
class add : public abstractinterface
 {
  public:
  void numbers()
   {
     int sum;
     sum=a+b;
     cout<<"sum is "<<sum<<"\n";
   }
 };
 
class sub : public abstractinterface
 {
   public:
   void numbers()
    {
     int diff;
     diff=a-b;
     cout<<"diff is "<<diff<<"\n";
    }
 };
 
int main()
 {
  add obj1;
  obj1.input();
  obj1.numbers();
  sub obj2;
  obj2.input();
  obj2.numbers();
return 0;
 }

Output:-   Enter the numbers

5

6

sum is 11

Enter the numbers

5

6

diff is -1

 

 

 

 

 

 

 

 


0 Comments