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