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.
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 |