Multiple inheritance is a feature in C++ where a class (derived class) can inherit from more than one base class. This allows the derived class to combine functionalities from multiple sources.
class Base1 {
// Base1 class members
};
class Base2 {
// Base2 class members
};
class Derived : public Base1, public Base2 {
// Derived class members
};
#include <iostream>
using namespace std;
class Animal {
public:
void eat() {
cout << "Eating..." << endl;
}
};
class Mammal {
public:
void walk() {
cout << "Walking..." << endl;
}
};
class Dog : public Animal, public Mammal {
public:
void bark() {
cout << "Barking..." << endl;
}
};
int main() {
Dog myDog;
myDog.eat(); // Inherited from Animal
myDog.walk(); // Inherited from Mammal
myDog.bark(); // Specific to Dog
return 0;
}
To resolve ambiguity, C++ allows the use of the scope resolution operator.
class Base1 {
public:
void show() {
cout << "Base1 show" << endl;
}
};
class Base2 {
public:
void show() {
cout << "Base2 show" << endl;
}
};
class Derived : public Base1, public Base2 {
public:
void display() {
Base1::show(); // Specify which base class method to call
Base2::show();
}
};
int main() {
Derived obj;
obj.display();
return 0;
}