Inheritance in C++

5 Types of Inheritance in C++ With Examples

In C++, inheritance is a fundamental concept in object-oriented programming that allows you to create a new class (called the derived class) based on an existing class (called the base class). Here are five types of inheritance in C++ along with examples:

1. Single Inheritance: In single inheritance, a derived class inherits from a single base class.

class Shape {
public:
void display() {
cout << "This is a shape." << endl;
}
};
class Circle : public Shape {
public:
void info() {
cout << “This is a circle.” << endl;
}
};

2. Multiple Inheritance: In multiple inheritance, a derived class inherits from two or more base classes.

class Vehicle {
public:
void move() {
cout << "Vehicle is moving." << endl;
}
};
class Flying {
public:
void fly() {
cout << “Flying…” << endl;
}
};

class FlyingCar : public Vehicle, public Flying {
public:
void display() {
cout << “This is a flying car.” << endl;
}
};

3. Multilevel Inheritance: In multilevel inheritance, a derived class becomes the base class for another derived class.

class Animal {
public:
void eat() {
cout << "Animal is eating." << endl;
}
};
class Mammal : public Animal {
public:
void walk() {
cout << “Mammal is walking.” << endl;
}
};

class Dog : public Mammal {
public:
void bark() {
cout << “Dog is barking.” << endl;
}
};

4. Hierarchical Inheritance: In hierarchical inheritance, multiple derived classes inherit from a single base class.

class Shape {
public:
void display() {
cout << "This is a shape." << endl;
}
};
class Circle : public Shape {
public:
void info() {
cout << “This is a circle.” << endl;
}
};

class Square : public Shape {
public:
void info() {
cout << “This is a square.” << endl;
}
};

5. Hybrid Inheritance: Hybrid inheritance is a combination of two or more types of inheritance. It involves a mix of single, multiple, multilevel, or hierarchical inheritance.

class A {
public:
void printA() {
cout << "Class A" << endl;
}
};
class B : public A {
public:
void printB() {
cout << “Class B” << endl;
}
};

class C : public A {
public:
void printC() {
cout << “Class C” << endl;
}
};

class D : public B, public C {
public:
void printD() {
cout << “Class D” << endl;
}
};

These are just examples to illustrate the types of inheritance in C++. Understanding inheritance and its variations is crucial for effective object-oriented programming in C++.