Inheritance and Reuse
Consider a car manufacturing company. When they require building a new car, they have two choices. They can start from the scratch, or they can change an existing model. Perhaps their former model is nearly perfect (say CAR1), but they would like to add a turbocharger and a six-speed transmission. The chief engineers would prefer to use the previous model and make some alters to it than creating a new one.
C++ supports the idea of reuse by inheritance. Through this concept, a new type can be declared that is an extension of the existing type. This new subclass is said to derive from the existing type and is sometimes known as a derived type.