C++ Inheritance

The ability relating to a class to draw characteristics and properties from another class is referred to as inheritance. Inheritance makes one amongst the highly crucial aspects of object-oriented programming that renders it easy to craft and keep up an application. This as well offers a chance of the rapid execution of time and use again the code functionality.

Types of Inheritance within C++

1- Single inheritance
2- Multilevel inheritance
3- Multiple inheritance
4- Hierarchical inheritance
5- Hybrid inheritance

Single inheritance

Within single inheritance in C++, you will find merely one derived class and one base class. The derived class usually is inherited from its base class.

Multilevel inheritance

Within this kind of inheritance, a single obtained class can inherit from two or from more base classes.

Below are enumerated some advantages and disadvantages of inheritance

Inheritance Advantages

One among the main draws of inheritance is to cut down the quantum of duplicate code within an application by partaking common code amid several subclasses. Wherever equivalent code is present in two germane classes, there you can see the hierarchy is capable of generally being refactored to shift the common code towards a mutual superclass. It is as well inclined to lead to a good organisation of code plus simple, small, compilation units.


The capability to utilise methods relating to a base class with no need of re-scripting the similar


It is used for expanding the base logic according to business logic pertaining to the derived class.

Data hiding

As well a base class is in a position to decide to retain some data private with the purpose it is not changed via the derived class.


With the help of inheritance, you shall be in a position to overrule the methods pertaining to the base class with the intention of meaningful execution of the base class mode shall be planned within the derived class.

Inheritance Disadvantages

One among the prominent glitches of inheritance is the enhanced effort or time it consumes the programme to take leap via the whole of the levels relating to overloaded classes. In case a given class possesses ten levels pertaining to abstraction over it, it shall, in essence, take ten leaps to run all through a function described within each of such classes.

The chief drawback of utilising inheritance can be taken that the two classes that are inherited and base class happen to be tightly tied. It implies that one cannot be utilised regardless of each other.

As well with time, at the time of maintenance including new facets, both derived and also base classes are needed to be altered. In case a method signature shall be altered then you shall be affected within both classes that are composition & inheritance.

In case a method shall be deleted within the aggregate or superclass, then you need to refactor if utilising that method. Here things may be somewhat intricate when it comes to inheritance on the ground your programmes shall still compile; however, the methods relating to the subclass shall be not anymore overruling superclass methods.

You may also like:

Top 10 Programming languages

Jump Start a New Programming Career with this Entry-Level Bundle