Hybrid inheritance

Hybrid inheritance is a combination of more than one type of inheritance, such as single, multiple, multilevel, or hierarchical. It allows a class to inherit properties from different inheritance models, providing flexibility in class design.

Example Structure
A class can be derived from multiple base classes, where each base class itself may have been derived through different inheritance models.

Example

#include <iostream>
using namespace std;

class Animal {
public:
    void eat() {
        cout << "Eating..." << endl;
    }
};

class Mammal : public Animal {
public:
    void breathe() {
        cout << "Breathing..." << endl;
    }
};

class Bird : public Animal {
public:
    void fly() {
        cout << "Flying..." << endl;
    }
};

class Bat : public Mammal, public Bird {
public:
    void sound() {
        cout << "Screeching..." << endl;
    }
};

int main() {
    Bat myBat;
    myBat.eat();     // Inherited from Animal
    myBat.breathe(); // Inherited from Mammal
    myBat.fly();     // Inherited from Bird
    myBat.sound();   // Specific to Bat
    return 0;
}

Key Points

  1. Flexibility: Combines different types of inheritance to suit complex requirements.
  2. Code Reusability: Inherits features from multiple classes, promoting reuse.
  3. Complexity: Can lead to complex and potentially confusing class hierarchies.