We have discussed in my previous post, what is Inheritance and its different types in C++, so today we are going to discuss about its third type, that is, Hierarchical Inheritance.
In Object Oriented Programming, the root meaning of inheritance is to establish a relationship between objects. In Inheritance, classes can inherit behavior and attributes from pre-existing classes, called Base Classes or Parent Classes.The resulting classes are known as derived classes or child classes.
There are 5 types of Inheritances used in C++:
There are 5 types of Inheritances used in C++:
1) Single Inheritance
2) Multilevel Inheritance
3) Hierarchial Inheritance
4) Hybrid Inheritance
5) Multiple Inheritance
So in Hierarchical Inheritance, we have 1 Parent Class and Multiple Child Classes, as shown in the pictorial representation given on this page, Inheritance. Many programming problems can be cast into a hierarchy where certain features of one level are shared by many others below that level. One example could be classification of accounts in a commercial bank or classification of students in a university.
In C++, such problems can be easily converted into hierarchies. The base class will include all the features that are common to the subclasses. A subclass can be constructed by inheriting the properties of the base class. A subclass can serve as a base class for the lower level classes and so on.
A derived class with hierarchical inheritance is declared as follows:
class A {.....}; // Base class
class B: public A {.....}; // B derived from A
class C: public A {.....}; // C derived from A
This process can be extended to any number of levels. Let us understand this concept by a simple C++ program:
C++ Program For Hierarchical Inheritance:
/* Double-Click To Select Code */ #include<iostream.h> #include<conio.h> class polygon { protected: int width, height; public: void input(int x, int y) { width = x; height = y; } }; class rectangle : public polygon { public: int areaR () { return (width * height); } }; class triangle : public polygon { public: int areaT () { return (width * height / 2); } }; void main () { clrscr(); rectangle rect; triangle tri; rect.input(6,8); tri.input(6,10); cout <<"Area of Rectangle: "<<rect.areaR()<< endl; cout <<"Area of Triangle: "<<tri.areaT()<< endl; getch(); }
Program Output:
Please Comment If You Liked The Post.
Do you like this post? Please link back to this article by copying one of the codes below.
URL: HTML link code: Forum link code: