The document discusses inheritance in C++. It defines inheritance as deriving a class from another class, allowing code reuse and fast development. There are different types of inheritance in C++: single inheritance where a class inherits from one base class; multiple inheritance where a class inherits from more than one base class; multilevel inheritance where a derived class inherits from another derived class; hierarchical inheritance where multiple subclasses inherit from a single base class; and hybrid inheritance which combines different inheritance types. Examples of each inheritance type are provided in C++ code snippets.
3. Inheritance in C++
The mechanism of deriving a class from another class is
known as Inheritance.
Inheritance is the most importance concept of object
oriented programming.
It allows us to define a class in terms of another class,
which helps to create and maintain an application.
The main advantage of Inheritance is, it provides an
opportunity to reuse the code functionality and fast
implementation time.
The members of the class can be Public, Private or
Protected.
4. Syntax:
class DerivedClass : AccessSpecifier BaseClass
The default access specifier is Private.
Inheritance helps user to create a new class (derived
class) from a existing class (base class).
Derived class inherits all the features from a Base class
including additional feature of its own.
5. Types of Inheritance.
1. Single Inheritance
2. Multiple Inheritance
3. Multilevel Inheritance
4. Hierarchical Inheritance
5. Hybrid Inheritance
6. 1. Single Inheritance
In Single Inheritance, one class is derived from another
class.
It represents a form of inheritance where there is only one
base and derived class.
7. // C++ program to explain Single inheritance
#include <iostream.h>
class Vehicle {
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
class Car: public Vehicle{
};
int main()
{
Car obj; // creating object of sub class will invoke the constructor of base classes
return 0;
}
8. 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
};
9. C++ program to explain multiple inheritance
#include <iostream.h>
class Vehicle {
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
class FourWheeler {
public:
FourWheeler()
{
cout << "This is a 4 wheeler Vehicle“;
}
};
class Car: public Vehicle, public FourWheeler
{
};
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
11. C++ program to implement Multilevel Inheritance
#include <iostream.h>
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
class fourWheeler: public Vehicle
{ public:
fourWheeler()
{
cout<<"Objects with 4 wheels are
vehicles"<<endl;
}
};
class Car: public fourWheeler{
public:
car()
{
cout<<"Car has 4 Wheels"<<endl;
}
};
int main()
{
Car obj;
return 0;
}
output:
This is a Vehicle
Objects with 4 wheels are vehicles
Car has 4 Wheels
12. 4 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.
13. C++ program to implement Hierarchical Inheritance
#include <iostream>
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" <<
endl;
}
};
class Car: public Vehicle
{
};
class Bus: public Vehicle
{
};
int main()
{
Car obj1;
Bus obj2;
return 0;
}
Output:
This is a Vehicle
This is a Vehicle
14. 5 Hybrid (Virtual) Inheritance:
Hybrid Inheritance is implemented by combining more than one type of
inheritance. For example: Combining Hierarchical inheritance and
Multiple Inheritance. Below image shows the combination of
hierarchical and multiple inheritance:
15. // C++ program for Hybrid Inheritance
#include <iostream.h>
class Vehicle
{
public:
Vehicle()
{
cout << "This is a Vehicle" << endl;
}
};
class Fare
{
public:
Fare()
{
cout<<"Fare of Vehiclen";
}
};
class Car: public Vehicle
{
};
class Bus: public Vehicle, public Fare
{
};
int main()
{
Bus obj2;
return 0;
}
Output:
This is a Vehicle
Fare of Vehicle