16.1.2: Inheritance - Types of Inheritance
- Page ID
- 29125
Types of Inheritance in C++
- Single Inheritance: In single inheritance, a class is allowed to inherit from only one class. i.e. one sub class is inherited by one base class only.
Syntax:class subclass_name : access_mode base_class { //body of subclass };
filter_none// C++ program to explain // Single inheritance #include <iostream> using namespace std; // base class class Vehicle { public: Vehicle() { cout << "This is a Vehicle" << endl; } }; // sub class derived from two base classes class Car: public Vehicle{ }; // main function int main() { // creating object of sub class will // invoke the constructor of base classes Car obj; return 0; }
play_arrow
brightness_4
// C++ program to explain
// Single inheritance
#include <iostream>
using
namespace
std;
// base class
class
Vehicle {
public
:
Vehicle()
{
cout <<
"This is a Vehicle"
<< endl;
}
};
// sub class derived from two base classes
class
Car:
public
Vehicle{
};
// main function
int
main()
{
// creating object of sub class will
// invoke the constructor of base classes
Car obj;
return
0;
}
Output:
This is a vehicle
- Multiple Inheritance: Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes. i.e one sub class is inherited from more than one base classes.
Syntax:class subclass_name : access_mode base_class1, access_mode base_class2, .... { //body of subclass };
Here, the number of base classes will be separated by a comma (‘, ‘) and access mode for every base class must be specified.
filter_noneedit
play_arrow
brightness_4
// C++ program to explain
// multiple inheritance
#include <iostream>
using
namespace
std;
// first base class
class
Vehicle {
public
:
Vehicle()
{
cout <<
"This is a Vehicle"
<< endl;
}
};
// second base class
class
FourWheeler {
public
:
FourWheeler()
{
cout <<
"This is a 4 wheeler Vehicle"
<< endl;
}
};
// sub class derived from two base classes
class
Car:
public
Vehicle,
public
FourWheeler {
};
// main function
int
main()
{
// creating object of sub class will
// invoke the constructor of base classes
Car obj;
return
0;
}
Output:
This is a Vehicle This is a 4 wheeler Vehicle
Please visit this link to learn multiple inheritance in details.
- Multilevel Inheritance: In this type of inheritance, a derived class is created from another derived class.
filter_none
edit
play_arrow
brightness_4
// C++ program to implement
// Multilevel Inheritance
#include <iostream>
using
namespace
std;
// base class
class
Vehicle
{
public
:
Vehicle()
{
cout <<
"This is a Vehicle"
<< endl;
}
};
class
fourWheeler:
public
Vehicle
{
public
:
fourWheeler()
{
cout<<
"Objects with 4 wheels are vehicles"
<<endl;
}
};
// sub class derived from two base classes
class
Car:
public
fourWheeler{
public
:
car()
{
cout<<
"Car has 4 Wheels"
<<endl;
}
};
// main function
int
main()
{
//creating object of sub class will
//invoke the constructor of base classes
Car obj;
return
0;
}
output:
This is a Vehicle Objects with 4 wheels are vehicles Car has 4 Wheels
- Hierarchical Inheritance: In this type of inheritance, more than one sub class is inherited from a single base class. i.e. more than one derived class is created from a single base class.
filter_none
edit
play_arrow
brightness_4
// C++ program to implement
// Hierarchical Inheritance
#include <iostream>
using
namespace
std;
// base class
class
Vehicle
{
public
:
Vehicle()
{
cout <<
"This is a Vehicle"
<< endl;
}
};
// first sub class
class
Car:
public
Vehicle
{
};
// second sub class
class
Bus:
public
Vehicle
{
};
// main function
int
main()
{
// creating object of sub class will
// invoke the constructor of base class
Car obj1;
Bus obj2;
return
0;
}
Output:
This is a Vehicle This is a Vehicle
Adapted from: "Inheritance in C++" by Harsh Agarwal, Geeks for Geeks is licensed under CC BY-SA 4.0