Inheritance With CPP
fig: Inheritance

The capability of a class to derive properties and characteristics from another class is called Inheritance. Inheritance is one of the most important features of Object-Oriented Programming.

একটি শ্রেণির অন্য শ্রেণি থেকে বৈশিষ্ট্য ও বৈশিষ্ট্য আহরণের ক্ষমতাকে উত্তরাধিকার বলে।  অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলির মধ্যে একটি হল উত্তরাধিকার।

(সহজ কথায় ইনহেরিটেন্স হচ্ছে একজন থেকে আরেকজনের সম্পত্তি কোনরকম কয় বিক্রয় ছাড়া যেটা আমরা পেয়ে থাকি ওটাই ইনহেরিটেন্স এটাকে আমরা হেরিটেজ বা উত্তরাধিকার সূত্রে পাওয়া জিনিস বলতে পারে)

Inheritance is a feature or a process in which new classes are created from the existing classes.

The new class created is called “derived class” or “child class” and the existing class is known as

the “base class” or “parent class”. The derived class now is said to be inherited from the base class.

ইনহেরিটেন্স হল একটি বৈশিষ্ট্য বা একটি প্রক্রিয়া যেখানে বিদ্যমান ক্লাস থেকে নতুন ক্লাস তৈরি করা হয়। 

তৈরি করা নতুন ক্লাসটিকে বলা হয় "ডিরিভড ক্লাস(sub-class)" বা "চাইল্ড ক্লাস"

এবং বিদ্যমান ক্লাসটি "বেস ক্লাস" বা "প্যারেন্ট ক্লাস" নামে পরিচিত। 

এখন আমরা প্রাপ্ত বর্গ কে ইনহেরিটেন্স বলতে পারি.


This  article following below the instruction:-

এই আর্টিকেলটি নিচের নির্দেশাবলী অনুসরণ করে :- 

  • Why and when to use inheritance?
  • Modes of Inheritance
  • Types of Inheritance

Why and when to use inheritance?

Consider a group of vehicles. You need to create classes for Bus, Car, and Truck.

The methods fuel Amount(), capacity(), apply Brakes() will be the same for all three classes.

If we create these classes avoiding inheritance then we have to write all of these functions

in each of the three classes as shown below figure:

যানবাহন একটি গ্রুপ বিবেচনা করুন. 

আপনাকে বাস, গাড়ি এবং ট্রাকের জন্য ক্লাস তৈরি করতে হবে। 

পদ্ধতিগুলি fuel Amount(), capacity(), apply Brakes()

তিনটি ক্লাসের জন্য একই হবে। 

যদি আমরা ইনহেরিটেন্স এড়িয়ে এই ক্লাসগুলি তৈরি করি

তবে নীচের চিত্রের মতো তিনটি ক্লাসের প্রতিটিতে আমাদের এই সমস্ত ফাংশন লিখতে হবে:

                                                                          

you can clearly see that the above this picture results in duplication of the same code 3 times.

This increases the chances of error and data redundancy. To avoid this type of situation,

inheritance is used. If we create a class Vehicle and write these three functions in it

and inherit the rest of the classes from the vehicle class, then we can simply avoid

the duplication of data and increase re-usability. Look at the below diagram in which

the three classes are inherited from vehicle class

আপনি স্পষ্ট দেখতে পাচ্ছেন যে উপরের প্রক্রিয়াটির ফলে একই কোড 3 বার ডুপ্লিকেশন হয়। 

এটি ত্রুটি এবং ডেটা রিডানডেন্সির সম্ভাবনা বাড়ায়।  এই ধরনের পরিস্থিতি এড়াতে,

উত্তরাধিকার(ইনহেরিটেন্স) ব্যবহার করা হয়।  আমরা যদি একটি ক্লাস Vehicle তৈরি করি

এবং এতে এই তিনটি ফাংশন লিখি এবং গাড়ির ক্লাস থেকে বাকি ক্লাসগুলিকে

উত্তরাধিকার(ইনহেরিটেন্স) সূত্রে প্রাপ্ত করি, তাহলে আমরা কেবল ডেটার নকল এড়াতে পারি

Implementing inheritance in CPP: For creating a sub-class that is inherited from

the base class we have to follow the below syntax. 

Syntax:


class<derived(sub class)_class_name> : <access> <base>

{

        /*logick*\

}

Here

class => keyword to create a new class

derived(sub class)_class_name=>name of the new class, 

which will inherit the base class

access=> acces of private data, public or protected data. 

Private data  is taken as default

base=> name of the base class

Note: A derived  class doesn’t inherit access to private data.

 it does inherit a full parent object, which contains any private members 

which that class declares.



above this example ,you can see  the ‘Child’ class is publicly inherited from the ‘Parent’ class so

the public data members of the class ‘Parent’ will also be inherited by the class Child

উপরের example you can see ,  ‘Child’ class ',Parent’ class থেকে সর্বজনীনভাবে উত্তরাধিকারসূত্রে

প্রাপ্ত হয় তাই 'পিতামাতা' শ্রেণীর পাবলিক ডেটা সদস্যরাও Child’ class দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হবে।

Modes of Inheritance: There are 3 modes of inheritance

Types Of Inheritance:-

1)Single inheritance:- In single inheritance, allowed to only one class. 
class subclass(derived)_name : base_class
{
  /*subclass*\
};
2)Multilevel inheritance:- Multilevel inheritanceof inheritance, a derived class is created from another derived class.
class C
{ 
/*here your code*\
};
class B:public C
{
/*here your code*\
}; class A: public B {
/*here your code*\
};

3)Multiple inheritance:-In Multiple inheritance inheritance, allowed to More then
 one class.
class subclass_name:access_mode base_class1,access_mode base_class2,....
{
  /*subclass*\
};
4)Hierarchical inheritance:- In this type of inheritance, more than one subclass is inherited from a single base class. i.e. more than one derived class is created from a single base class.
class A  
{  
    //write code
}    
class B : public A   
{  
    //write code
} class C : public A { //write code
} class D : public A { //write code
}
5)Hybrid inheritance;-Hybrid Inheritance is implemented by combining more than one type of inheritance. For example: Combining Hierarchical inheritance and Multiple Inheritance. 




                        ##Thanks for reading##

Comments

Popular posts from this blog