C++ Public, Protected and Private Inheritance

03-11-17 Course- CPP

You may declare a derived class from a base class with different access control, that is, public inheritance, protected inheritance or private inheritance.


class base
{
.... ... ....
};

class derived : access_specifier base
{
.... ... ....
};

/* Note: Either keyword public, protected or private is used in place of access_specifier. */

Things to remember while Using Public, Protected and Private Inheritance

Protected and public members(data and function) of a base class are accessible from a derived class(for all three: public, protected and private inheritance). Objects of derived class with private and protected inheritance cannot access any data member of a base class. Objects of derived class with public inheritance can access only public member of a base class.

Public, protected and private inheritance in C++ programming with different access combinations

Summary of Public, Protected and Private Inheritance

Accessibility in Public Inheritance

Accessibility private protected public
Accessible from own class? yes yes yes
Accessible from dervied class? no yes yes
Accessible outside dervied class? no no yes

Accessibility in Protected Inheritance

Accessibility private protected public
Accessible from own class? yes yes yes
Accessible from dervied class? no yes yes
Accessible outside dervied class? no no no

Accessibility in Private Inheritance

Accessibility private protected public
Accessible from own class? yes yes yes
Accessible from dervied class? no yes yes
Accessible outside dervied class? no no no