Skip to content

Types of inheritance

๐Ÿ“˜ What is Inheritance?

Inheritance is a mechanism where a child class (derived class) inherits properties and behaviors from a parent class (base class).

C++ supports five types of inheritance:


๐Ÿงฉ 1. Single Inheritance

โœ… Description:

One base class and one derived class.

๐Ÿ”ง Syntax:

class A { /* base class */ };
class B : public A { /* derived class */ };

๐Ÿงช Example:

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

class Dog : public Animal {
public:
void bark() {
cout << "Barking..." << endl;
}
};

๐Ÿงฉ 2. Multiple Inheritance

โœ… Description:

One derived class inherits from more than one base class.

๐Ÿ”ง Syntax:

class A { };
class B { };
class C : public A, public B { };

๐Ÿงช Example:

class Father {
public:
void home() {
cout << "Owns a home" << endl;
}
};

class Mother {
public:
void car() {
cout << "Owns a car" << endl;
}
};

class Child : public Father, public Mother {
public:
void bike() {
cout << "Owns a bike" << endl;
}
};

๐Ÿงฉ 3. Multilevel Inheritance

โœ… Description:

A class inherits from a derived class, forming a chain.

๐Ÿ”ง Syntax:

class A { };
class B : public A { };
class C : public B { };

๐Ÿงช Example:

class Grandparent {
public:
void legacy() {
cout << "Family legacy" << endl;
}
};

class Parent : public Grandparent {
public:
void guidance() {
cout << "Parental guidance" << endl;
}
};

class Child : public Parent {
public:
void study() {
cout << "Child studies" << endl;
}
};

๐Ÿงฉ 4. Hierarchical Inheritance

โœ… Description:

Multiple classes inherit from one base class.

๐Ÿ”ง Syntax:

class A { };
class B : public A { };
class C : public A { };

๐Ÿงช Example:

class Teacher {
public:
void teach() {
cout << "Teaching..." << endl;
}
};

class MathTeacher : public Teacher {
public:
void teachMath() {
cout << "Teaching Math" << endl;
}
};

class ScienceTeacher : public Teacher {
public:
void teachScience() {
cout << "Teaching Science" << endl;
}
};

๐Ÿงฉ 5. Hybrid Inheritance

โœ… Description:

Combination of two or more types of inheritance.

๐Ÿ”ง Example:

This combines multiple and multilevel inheritance.

class A {
public:
void displayA() {
cout << "Class A" << endl;
}
};

class B : public A {
public:
void displayB() {
cout << "Class B" << endl;
}
};

class C {
public:
void displayC() {
cout << "Class C" << endl;
}
};

class D : public B, public C {
public:
void displayD() {
cout << "Class D" << endl;
}
};

๐Ÿ“ Note: Hybrid inheritance can cause the Diamond Problem, which can be solved using virtual inheritance.


๐Ÿ“Š Comparison Table:

TypeDescriptionExample Classes
SingleOne base, one derivedA โ†’ B
MultipleOne derived from many basesA, B โ†’ C
MultilevelA โ†’ B โ†’ C (Chain of inheritance)A โ†’ B โ†’ C
HierarchicalOne base, many derivedA โ†’ B, C
HybridMixture of two or more typesA โ†’ B & C โ†’ D

๐Ÿ“Œ Summary:

  • Inheritance helps in code reuse and organizing programs.
  • C++ supports 5 types: Single, Multiple, Multilevel, Hierarchical, and Hybrid.
  • Care should be taken with Multiple and Hybrid inheritance to avoid ambiguity.