0
0
C++programming~5 mins

Types of inheritance in C++

Choose your learning style9 modes available
Introduction

Inheritance lets one class get features from another class. It helps reuse code and organize programs better.

When you want a new class to have all features of an existing class plus some new ones.
When you want to model real-world relationships like a Dog is a kind of Animal.
When you want to share common code among several classes.
When you want to extend or modify behavior of existing classes.
Syntax
C++
class BaseClass {
  // base class members
};

class DerivedClass : access_specifier BaseClass {
  // derived class members
};

access_specifier is usually public, protected, or private.

Public inheritance means 'is-a' relationship.

Examples
Dog inherits from Animal. Dog can eat and bark.
C++
class Animal {
public:
  void eat() {}
};

// Single inheritance
class Dog : public Animal {
public:
  void bark() {}
};
Class C inherits from both A and B.
C++
class A {};
class B {};

// Multiple inheritance
class C : public A, public B {};
C inherits from B, which inherits from A.
C++
class A {};
class B : public A {};
class C : public B {};  

// Multilevel inheritance
Multiple classes inherit from the same base class.
C++
class A {};
class B : public A {};
class C : public A {};

// Hierarchical inheritance
// Both B and C inherit from A
Sample Program

This program shows single inheritance. Dog class inherits eat() from Animal and adds bark().

C++
#include <iostream>
using namespace std;

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

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

int main() {
  Dog d;
  d.eat();  // inherited from Animal
  d.bark(); // own method
  return 0;
}
OutputSuccess
Important Notes

Use public inheritance to keep base class methods accessible in derived class.

Private inheritance hides base class methods from outside.

Multiple inheritance can cause conflicts if base classes have same method names.

Summary

Inheritance lets a class reuse code from another class.

Types include single, multiple, multilevel, and hierarchical inheritance.

Use inheritance to model real-world 'is-a' relationships.