Single Inheritance – Private Inheritance in C++

Let us understand what does private inheritance mean…

Consider a simple example to illustrate the single inheritance. The Program given below shows a base class B and a derived class D. The class B contains one private data member, one public data member and three public member functions. The class D contains one private data member and two public member functions.

#include<iostream.h>
 
class B
   {
      private:
         int a;      //private; not inheritable
      public:
         int b;      //public; ready for inheritance
         void get_ab();
         int get_a();
         void show_a();
   };
 
class D : private B      //private derivation
   {
      private:
         int c;
      public:
         void mul();
         void display();
   };

In private derivation, the public members of the base class becomes private members of the derived class. Therefore, the objects of the derived class D cannot have direct access to the public member functions of the base class B.

Hence, if we create an object of the derived class D,

D x;

The statements such as:

x.get_ab();   //get_ab() is private
x.get_a();   //get_a() is private
x.show_a();   //show_a() is private

will not work. However, these functions can be used inside mul() and display() like the normal functions as shown below:

void mul()
   {
      get_ab();
      c = b * get_a();
   }

void display()
   {
      show_a();   //outputs value of a
      cout << "b = " << b << endl;
      cout << "c = " << c << endl;
   }

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *