Inheritance in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Inheritance in C++ Notes | Basic Computer Engineering | RGPV BTech First Year


Inheritance in C++

Inheritance Object Oriented Programming (OOP) рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг Feature рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирдИ Class, рдХрд┐рд╕реА рдкрд╣рд▓реЗ рд╕реЗ рдмрдиреА рд╣реБрдИ Class рдХреЗ Data Members рддрдерд╛ Member Functions рдХреЛ рдкреНрд░рд╛рдкреНрдд (Inherit) рдХрд░ рд╕рдХрддреА рд╣реИред рдЬрд┐рд╕ Class рд╕реЗ Properties рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЙрд╕реЗ Base Class рдпрд╛ Parent Class рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдерд╛ рдЬреЛ Class рдЙрди Properties рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдЙрд╕реЗ Derived Class рдпрд╛ Child Class рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Inheritance Code Reusability рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, Program рдХреЛ рдЕрдзрд┐рдХ Organized рдмрдирд╛рддрд╛ рд╣реИ рддрдерд╛ Software Development рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдмрдбрд╝реЗ Software Projects рдореЗрдВ Inheritance рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Base Class тЖТ Existing Class

Derived Class тЖТ New Class that Reuses Existing Features

Introduction to Inheritance

Object Oriented Programming рдореЗрдВ рдХрдИ рдмрд╛рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЖрддреА рд╣реИ рдЬрд╣рд╛рдБ рдЕрдиреЗрдХ Classes рдореЗрдВ рд╕рдорд╛рди Properties рддрдерд╛ Functions рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ Class рдореЗрдВ рд╡рд╣реА Code рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рдП рддреЛ Program рдмрдбрд╝рд╛ рддрдерд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди Inheritance рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Inheritance рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдПрдХ Existing Class рдХреА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ Properties рджреВрд╕рд░реА Class рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ Code Duplication рдХрдо рд╣реЛрддрд╛ рд╣реИ рддрдерд╛ Maintenance рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


Definition of Inheritance

Inheritance рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирдИ Class, рдХрд┐рд╕реА Existing Class рдХреЗ Data Members рддрдерд╛ Member Functions рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдЙрдирдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдирдИ Class рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд Members рднреА рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред


Need of Inheritance

  • Code Reusability рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Duplicate Code рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Software Maintenance рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Large Applications Develop рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Program рдХреЛ Modular рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Existing Code рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Development Time рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • Object Oriented Design рдХреЛ рдордЬрдмреВрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

Features of Inheritance

  • Supports Code Reusability.
  • Provides Hierarchical Class Structure.
  • Reduces Program Complexity.
  • Improves Maintainability.
  • Supports Extensibility.
  • Provides Better Organization.
  • Works with Polymorphism.
  • Supports Software Reusability.

Advantages of Inheritance

Advantage Description
Code Reusability рдПрдХ рд╣реА Code рдХреЛ рдХрдИ Classes рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Less Development Time рдирдИ Class рдЬрд▓реНрджреА рддреИрдпрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
Easy Maintenance Code рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
Improved Readability Program рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
Scalability рдмрдбрд╝реЗ Software Projects рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Syntax of Inheritance

class Base { public: void display() { cout << "Base Class"; } }; class Derived : public Base { };

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ Derived Class, Base Class рд╕реЗ Public Mode рджреНрд╡рд╛рд░рд╛ Inherit рдХреА рдЧрдИ рд╣реИред рдЗрд╕рд▓рд┐рдП Derived Class, Base Class рдХреЗ Public Members рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИред


Base Class and Derived Class

Inheritance рдореЗрдВ рджреЛ рдореБрдЦреНрдп Classes рд╣реЛрддреА рд╣реИрдВред рдкрд╣рд▓реА Base Class рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ Common Properties рддрдерд╛ Functions рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рджреВрд╕рд░реА Derived Class рд╣реЛрддреА рд╣реИ рдЬреЛ Base Class рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдЙрдирдореЗрдВ рдирдИ Functionalities рдЬреЛрдбрд╝рддреА рд╣реИред

Class Type Description
Base Class Parent Class рдЬреЛ Members рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИред
Derived Class Child Class рдЬреЛ Base Class рдХреА Properties рдПрд╡рдВ Functions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

Types of Inheritance

C++ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ Inheritance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ Class Relationship рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

Type Description
Single Inheritance рдПрдХ Derived Class рдХреЗрд╡рд▓ рдПрдХ Base Class рд╕реЗ Properties рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред
Multiple Inheritance рдПрдХ Derived Class рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Base Classes рд╕реЗ Inherit рдХрд░рддреА рд╣реИред
Multilevel Inheritance рдПрдХ Derived Class рд╕реНрд╡рдпрдВ рдХрд┐рд╕реА рдЕрдиреНрдп Class рдХреА Base Class рдмрди рдЬрд╛рддреА рд╣реИред
Hierarchical Inheritance рдПрдХ Base Class рд╕реЗ рдЕрдиреЗрдХ Derived Classes рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
Hybrid Inheritance рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА Inheritance рдХрд╛ Combination рд╣реЛрддрд╛ рд╣реИред

Single Inheritance

рдЬрдм рдПрдХ Derived Class рдХреЗрд╡рд▓ рдПрдХ Base Class рд╕реЗ Data Members рдПрд╡рдВ Member Functions рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рддрдм рдЙрд╕реЗ Single Inheritance рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрд╡рдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ Inheritance Type рд╣реИред

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

Multiple Inheritance

рдЬрдм рдПрдХ Derived Class, рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Base Classes рд╕реЗ Properties рдПрд╡рдВ Functions рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рддрдм рдЙрд╕реЗ Multiple Inheritance рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

Multilevel Inheritance

рдЬрдм рдПрдХ Derived Class рд╕реНрд╡рдпрдВ рджреВрд╕рд░реА Class рдХреА Base Class рдмрди рдЬрд╛рддреА рд╣реИ, рддрдм рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА Inheritance рдХреЛ Multilevel Inheritance рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

Hierarchical Inheritance

рдЬрдм рдПрдХ рд╣реА Base Class рд╕реЗ рдЕрдиреЗрдХ Derived Classes рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рддрдм рдЙрд╕реЗ Hierarchical Inheritance рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

class Person { }; class Student : public Person { }; class Teacher : public Person { };

Hybrid Inheritance

рдЬрдм Program рдореЗрдВ рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА Inheritance рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдЙрд╕реЗ Hybrid Inheritance рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ Complex Software Development рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИред


Modes of Inheritance

C++ рдореЗрдВ Base Class рдХреЗ Members рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ Derived Class рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ, рдпрд╣ Inheritance Mode рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Mode Description
Public Public Members Public рд╣реА рд░рд╣рддреЗ рд╣реИрдВ рддрдерд╛ Protected Members Protected рд░рд╣рддреЗ рд╣реИрдВред
Protected Public рдПрд╡рдВ Protected рджреЛрдиреЛрдВ Members Protected рдмрди рдЬрд╛рддреЗ рд╣реИрдВред
Private Public рдПрд╡рдВ Protected рджреЛрдиреЛрдВ Members Private рдмрди рдЬрд╛рддреЗ рд╣реИрдВред

Real Life Examples of Inheritance

Base Class Derived Class
Vehicle Car, Bike, Bus
Person Student, Teacher, Employee
Animal Dog, Cat, Cow
Account Saving Account, Current Account

Constructor and Destructor in Inheritance

Inheritance рдореЗрдВ рдЬрдм рдХрд┐рд╕реА Derived Class рдХрд╛ Object Create рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ Base Class Constructor Execute рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж Derived Class Constructor Execute рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реА рдкреНрд░рдХрд╛рд░ Object Destroy рд╣реЛрдиреЗ рдкрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ Derived Class рдХрд╛ Destructor Execute рд╣реЛрддрд╛ рд╣реИ рддрдерд╛ рдЕрдВрдд рдореЗрдВ Base Class рдХрд╛ Destructor Execute рд╣реЛрддрд╛ рд╣реИред

Object Creation Object Destruction
Base Constructor тЖТ Derived Constructor Derived Destructor тЖТ Base Destructor

Method Overriding

рдпрджрд┐ Derived Class, Base Class рдХреЗ рдХрд┐рд╕реА Member Function рдХреЛ рдЕрдкрдиреЗ рдЕрдиреБрд╕рд╛рд░ рдкреБрдирдГ Define рдХрд░рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ Method Overriding рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ Derived Class рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ (Behavior) рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреА рд╣реИред

class Animal { public: void sound() { cout<<"Animal Sound"; } }; class Dog : public Animal { public: void sound() { cout<<"Dog Bark"; } };

Complete C++ Program using Inheritance

#include<iostream> using namespace std; class Animal { public: void eat() { cout<<"Animal is Eating"<

Applications of Inheritance

  • Student Management System.
  • Banking Applications.
  • Hospital Management Software.
  • School ERP System.
  • Employee Management System.
  • E-Commerce Applications.
  • Game Development.
  • GUI Applications.
  • Operating Systems.
  • Enterprise Software.

Advantages of Inheritance

  • Promotes Code Reusability.
  • Reduces Code Duplication.
  • Easy Software Maintenance.
  • Supports Extensible Design.
  • Improves Code Organization.
  • Reduces Development Time.
  • Supports Polymorphism.
  • Provides Better Scalability.

Limitations of Inheritance

  • Complex Class Hierarchies may reduce readability.
  • Improper Design increases dependency.
  • Private Members cannot be accessed directly.
  • Multiple Inheritance may create ambiguity.
  • Large Hierarchies become difficult to maintain.

Industrial Importance

Inheritance рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ Object Oriented Programming Languages рдЬреИрд╕реЗ C++, Java, C# рддрдерд╛ Python рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Enterprise Applications, Banking Systems, ERP Software, Hospital Management Systems, Android Applications рддрдерд╛ Game Development рдореЗрдВ Code Reusability рдПрд╡рдВ Maintainability рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред


Viva Questions

  1. What is Inheritance?
  2. Define Base Class and Derived Class.
  3. What are the advantages of Inheritance?
  4. Explain Single Inheritance.
  5. Explain Multiple Inheritance.
  6. What is Multilevel Inheritance?
  7. What is Hierarchical Inheritance?
  8. Explain Hybrid Inheritance.
  9. Differentiate Public, Protected and Private Inheritance.
  10. What is Method Overriding?

Exam Oriented Important Questions

  1. Define Inheritance with suitable example.
  2. Explain different types of Inheritance.
  3. Differentiate Base Class and Derived Class.
  4. Explain Public, Protected and Private Inheritance Modes.
  5. Write a C++ Program demonstrating Single Inheritance.
  6. Explain Constructor and Destructor in Inheritance.
  7. Explain Method Overriding with example.
  8. Write short notes on Hybrid Inheritance.
  9. Discuss the advantages and limitations of Inheritance.
  10. Explain real-life applications of Inheritance.

Conclusion

Inheritance Object Oriented Programming рдХрд╛ рдПрдХ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг Concept рд╣реИ рдЬреЛ Existing Classes рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ (Reuse) рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ Code Reusability, Maintainability рддрдерд╛ Scalability рдмрдврд╝рддреА рд╣реИред Single, Multiple, Multilevel, Hierarchical рддрдерд╛ Hybrid Inheritance рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА Class Relationships рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП Inheritance рдХрд╛ рдЕрдзреНрдпрдпрди рдкреНрд░рддреНрдпреЗрдХ C++ Programmer рддрдерд╛ RGPV B.Tech рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдЖрд╡рд╢реНрдпрдХ рд╣реИред

Related Articles

Manipulators in C++ Notes | endl, setw, setprecision, setfill | Basic Computer Engineering | RGPV BTech First Year

0...

Read More тЖТ

Type Conversion in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Type Co...

Read More тЖТ

Assignment Operator in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Assignm...

Read More тЖТ

Copy Constructor in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Copy Co...

Read More тЖТ

this Pointer in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

this Po...

Read More тЖТ