Multiple Inheritence in C++
If a class is derived from two or more base classes then it is called multiple inheritance. In C++ multiple inheritance a derived class has more than one base class.
How does multiple inheritance differ from multilevel inheritance?
Though but multiple and multilevel sounds like same but they differ hugely in meaning. In multilevel inheritance, we have multiple parent classes whereas in in multiple inheritance we have multiple base classes.To put it in simple words, in multilevel inheritance, a class is derived from a class which is also derived from another base class. And these levels of inheritance can be extended. On the contrary, in multiple inheritance, a class is derived from two different base classes.
For example
- Multilevel inheritance : Inheritance of characters by a child from father and father inheriting characters from his father (grandfather)
- Multiple inheritance : Inheritance of characters by a child from mother and father
C++ Multiple Inheritance Block Diagram
Following block diagram highlights its structure.As shown in above block diagram, class C is derived from two base classes A and B.
As in other inheritance, based on the visibility mode used or access specifier used while deriving, the properties of the base class are derived. Access specifier can be private, protected or public.
Click here to learn in detail about access specifiers and their use in inheritance
C++ Multiple Inheritance Syntax
class A
{
..........
};
class B
{
...........
} ;
class C : acess_specifier A,access_specifier A // derived class from A and B
{
...........
} ;
C++ Multiple Inheritance Example
Here is a simple example illustrating the concept of C++ multiple inheritance.// multiple inheritance.cpp
#include
using namespace std;
class A
{
public:
int x;
void getx()
{
cout << "enter value of x: "; cin >> x;
}
};
class B
{
public:
int y;
void gety()
{
cout << "enter value of y: "; cin >> y;
}
};
class C : public A, public B //C is derived from class A and class B
{
public:
void sum()
{
cout << "Sum = " << x + y;
}
};
int main()
{
C obj1; //object of derived class C
obj1.getx();
obj1.gety();
obj1.sum();
return 0;
} //end of program
Output
enter value of x: 5
enter value of y: 4
Sum = 9
Explanation
In the above program, there are two base class
A
and B
from which class C
is inherited. Therefore, derived class C
inherits all the public members of A
and B
and retains their visibility. Here, we have created the object obj1
of derived class C
.
Comments
Post a Comment