Do you think IIT Guwahati certified course can help you in your career?
No
परिचय
एक जटिल प्रोग्राम बनाते समय, यह मुख्य रूप से देखा जाता है कि कुछ विशेषताओं और विशेषताओं को दोहराया जा रहा है, और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग हमें इनहेरिटेंस की मदद से ऐसा करने का एक तरीका देती है।
पुन: प्रयोज्य वस्तु उन्मुख प्रोग्रामिंग की एक महत्वपूर्ण विशेषता है। C++ में हम एक क्लास को फिर से इस्तेमाल कर सकते हैं और अतिरिक्त फीचर जोड़ सकते हैं। कक्षाओं का पुन: उपयोग करने से समय और धन की बचत होती है। पहले से परीक्षण किए गए और डिबग किए गए वर्ग का पुन: उपयोग करके, हम उसी चीज़ को फिर से विकसित करने और डिबग करने के बहुत सारे प्रयासों को बचा सकते हैं। C ++ में पुन: प्रयोज्यता की अवधारणा इनहेरिटेंस का उपयोग करके समर्थित है। हम किसी मौजूदा वर्ग के गुणों को उससे प्राप्त करके पुन: उपयोग कर सकते हैं। मौजूदा वर्ग को आधार वर्ग कहा जाता है। जो नया वर्ग विरासत में मिला है उसे व्युत्पन्न वर्ग कहा जाता है। एक व्युत्पन्न वर्ग में एक से अधिक आधार वर्ग हो सकते हैं।
इनहेरिटेंस के लाभ
यदि हम इस दृष्टिकोण के आधार पर कोई एप्लिकेशन बनाते हैं, तो इसके निम्नलिखित लाभ होंगे:
किसी एप्लिकेशन को डिज़ाइन करने में लगने वाला समय कम हो जाता है।
एप्लिकेशन कम मेमोरी का उपयोग करता है।
किसी एप्लिकेशन को चलने में लगने वाला समय कम हो जाता है।
एप्लिकेशन के प्रदर्शन में सुधार (सुधार) किया गया है।
कोड की अतिरेक (पुनरावृत्ति) कम या समाप्त हो जाती है, जिसके परिणामस्वरूप अधिक सुसंगत आउटपुट और कम भंडारण लागत होती है।
C++ में इनहेरिटेंस को कार्यान्वित करना
C++ में इनहेरिटेन्स को लागू करने के लिए निम्नलिखित सिंटैक्स का उपयोग किया जाता है
class derived_class_name : access_mode base_class_name
{
//body of the derived class
};
You can also try this code with Online C++ Compiler
एक्सेस स्पेसिफायर वे कीवर्ड हैं जिनका उपयोग कक्षाओं, विधियों और अन्य वर्ग सदस्यों की पहुंच को नियंत्रित करने के लिए किया जाता है। यह यह भी सुनिश्चित करता है कि जब एक वर्ग दूसरे वर्ग से लिया जाता है तो कौन से कार्य और गुण विरासत में मिलते हैं।
C++ में, हमारे पास तीन एक्सेस स्पेसिफायर हैं: -
Public: सदस्य जो आधार वर्ग में सार्वजनिक हैं, सार्वजनिक रूप से प्राप्त किए जाने पर व्युत्पन्न वर्ग में सार्वजनिक रूप से प्राप्त किए जाते हैं। इन्हें कक्षा के बाहर कहीं से भी एक्सेस किया जा सकता है।
Private: बेस क्लास के सार्वजनिक या संरक्षित सदस्य निजी रूप से विरासत में मिलने पर व्युत्पन्न वर्ग के निजी सदस्य बन जाते हैं। निजी सदस्य कभी विरासत में नहीं मिलते हैं
Protected: संरक्षित सदस्यों को कक्षा के बाहर एक्सेस नहीं किया जा सकता है, लेकिन उन्हें इनहेरिट किया जा सकता है।
डिफ़ॉल्ट रूप से, C++ में सभी सदस्य और कार्य Private हैं।
निम्न तालिका दिखाती है कि जब एक वर्ग किसी अन्य वर्ग से इनहेरिट किया जाता है तो विभिन्न एक्सेस स्पेसियर कैसे काम करते हैं।
उपरोक्त तालिका से मुख्य बिंदु Private सदस्य कभी इनहेरिटेंस में नहीं मिलते हैं। यदि सार्वजनिक रूप से इनहेरिटेंस में मिला है, तो Public सदस्य Public होंगे और Protected सदस्यों की रक्षा की जाएगी। यदि हम एक Protected विनिर्देशक के तहत इनहेरिट करते हैं, तो Public और Protected सदस्य Protected हो जाते हैं। Private सदस्यों की तरह, Protected सदस्यों को सीधे ड्राइवर फ़ंक्शन में एक्सेस नहीं किया जा सकता है; उन्हें अन्य Public या Private या Protected सदस्य कार्यों का उपयोग करके एक्सेस किया जा सकता है।
इनहेरिटेंस के प्रकार
सिंगल इनहेरिटेंस
जब हमारे पास केवल एक आधार वर्ग और एक व्युत्पन्न वर्ग होता है, तो ऐसी इनहेरिटेंस को सिंगल इनहेरिटेंस कहा जाता है। यह सबसे आम और सबसे अधिक इस्तेमाल किया जाने वाला इनहेरिटेंस प्रकार है।
C++ में सिंगल इनहेरिटेंस का उदाहरण
#include<iostream>
using namespace std;
//defining base_class
class base_class{
public:
int data;
//a function to set the value of data
void set_data(int new_data){
data = new_data;
}
//a function to get the value of data
int get_data(){
return data;
}
};
//derivinf class from base class
class derived_class: public base_class{
public:
int data2;
void print_message(){
cout<<"Method of derived class";
}
};
int main(){
//creating object of derived class
derived_class obj;
//calling fucntion of base class by an object of derived class
obj.set_data(55);
cout<<obj.get_data()<<endl;
//accessing additional features of derived class
obj.data2 = 10;
cout<<obj.data2<<endl;
obj.print_message();
return 0;
}
You can also try this code with Online C++ Compiler
जब एक वर्ग एक से अधिक आधार वर्ग से व्युत्पन्न होता है, तो ऐसे इनहेरिटेंस को मल्टीपल इनहेरिटेंस कहा जाता है।
C++ में मल्टीपल इनहेरिटेंस का उदाहरण
#include<iostream>
using namespace std;
//defining base_class A
class A{
public:
int data;
//a function to set the value of data
void set_data(int new_data){
data = new_data;
}
//a function to get the value of data
int get_data(){
return data;
}
};
//defining base_class B
class B{
public:
void print_base_class2(){
cout<<"This is a method of class B\n";
}
};
//deriving class from base classes A and B
class derived_class: public A, public B{
public:
int data2;
void print_message(){
cout<<"Method of derived class";
}
};
int main(){
//creating object of the derived class
derived_class obj;
//calling function of class A by an object of derived class
obj.set_data(55);
cout<<obj.get_data()<<endl;
//calling function of class B by an object of derived class
obj.print_base_class2();
//accessing additional members of derived class
obj.data2 = 10;
cout<<obj.data2<<endl;
obj.print_message();
return 0;
}
You can also try this code with Online C++ Compiler
55
This is a method of class B
10
Method of the derived class
हाइरार्किकल इनहेरिटेंस
जब हमारे पास एक ही आधार वर्ग से कई व्युत्पन्न वर्ग होते हैं, तो ऐसी इनहेरिटेंस को हाइरार्किकल इनहेरिटेंस कहा जाता है।
C++ में हाइरार्किकल इनहेरिटेंस का उदाहरण
#include<iostream>
using namespace std;
//defining base class C
class C{
public:
int data;
//a function to set the value of data
void set_data(int new_data){
data = new_data;
}
//a function to get the value of data
int get_data(){
return data;
}
};
//deriving class A from class C
class A: public C{
public:
void print_message(){
cout<<"Method of class A\n";
}
int triple_data(){
return 3*data;
}
};
//deriving class B from class C
class B: public C{
public:
void print_message(){
cout<<"Method of class B\n";
}
int double_data(){
return 2*data;
}
};
//driver function
int main(){
//creating object of class A
A obj1;
//calling fucntion of class C by an object of class A
obj1.set_data(55);
cout<<obj1.get_data()<<endl;
//accessing additional members of class A
obj1.print_message();
cout<<obj1.triple_data()<<endl;
//creating object of class B
B obj2;
//calling fucntion of class C by an object of class B
obj2.set_data(55);
cout<<obj2.get_data()<<endl;
//accessing additional members of class B
obj2.print_message();
cout<<obj2.double_data()<<endl;
return 0;
}
You can also try this code with Online C++ Compiler
जब हम पहले से व्युत्पन्न वर्ग से एक वर्ग प्राप्त करते हैं।तो ऐसी इनहेरिटेंस को मल्टीलेवल इनहेरिटेंस कहा जाता है।
C++ में मल्टीलेवल इनहेरिटेंस का उदाहरण
#include<iostream>
using namespace std;
//defining base class A
class A{
public:
int data;
//a function to set the value of data
void set_data(int new_data){
data = new_data;
}
//a function to get the value of data
int get_data(){
return data;
}
};
//deriving class B from class A
class B: public A{
public:
void print_message(){
cout<<"Method of class B\n";
}
int triple_data(){
return 3*data;
}
};
//deriving class C from class B
class C: public B{
public:
void print_statement(){
cout<<"Method of class C\n";
}
int double_data(){
return 2*data;
}
};
//driver function
int main(){
//creating an object of class C
C obj;
//accessing functions of class A from an object of class C
obj.set_data(55);
cout<<obj.get_data()<<endl;
//accessing functions of class B from an object of class C
obj.print_message();
cout<<obj.triple_data()<<endl;
//accessing additional functions of class C
obj.print_statement();
cout<<obj.double_data();
return 0;
}
You can also try this code with Online C++ Compiler
यह मल्टीपल और मल्टीलेवल इनहेरिटेंस दोनों का मिश्रण है। एक वर्ग दो या दो से अधिक वर्गों से प्राप्त होता है, और मूल वर्गों में से एक व्युत्पन्न वर्ग नहीं होता है।
C++ में हाइब्रिड इनहेरिटेंस का उदाहरण
#include<iostream>
using namespace std;
//defining base class A
class A{
public:
int data;
//a function to set the value of data
void set_data(int new_data){
data = new_data;
}
//a function to get the value of data
int get_data(){
return data;
}
};
//deriving class B from class A
class B: public A{
public:
void print_message(){
cout<<"Method of class B\n";
}
};
//deriving class C from class A
class C{
public:
void print_statement(){
cout<<"Method of class C\n";
}
};
//deriving class D from B and C
class D: public B, public C{
public:
void print_function(){
cout<<"Method of class D\n";
}
};
//driver function
int main(){
D obj;
//accessing functions of class A
obj.set_data(55);
cout<<obj.get_data()<<endl;
obj.print_message();
obj.print_statement();
obj.print_function();
return 0;
}
You can also try this code with Online C++ Compiler
इनहेरिटेंस हमें एक वर्ग को दूसरी कक्षा में निर्धारित करने में मदद करता है, जिससे अनुप्रयोग विकास और रखरखाव आसान हो जाता है। यह कोड कार्यक्षमता के पुन: उपयोग और त्वरित कार्यान्वयन समय की भी अनुमति देता है।
C++ में संरक्षित इनहेरिटेंस क्या है?
संरक्षित इनहेरिटेंस में, आधार वर्ग के सार्वजनिक और संरक्षित सदस्य व्युत्पन्न वर्ग में संरक्षित होते हैं।
C++ में कितने प्रकार की इनहेरिटेंस होती है?
इनहेरिटेंस के पांच प्रकार हैं सिंगल, मल्टीपल, मल्टीलेवल, हाइरार्किकल और हाइब्रिड इनहेरिटेंस।
निष्कर्ष
इस लेख में, हमने C++ में इनहेरिटेंस पर चर्चा की। हमने एक्सेस स्पेसिफायर के साथ इनहेरिटेंस के विभिन्न फायदों के बारे में सीखा। हमने C++ में विभिन्न प्रकार की इनहेरिटेंस पर भी चर्चा की है।
Live masterclass
Beginner to GenAI Engineer Roadmap for 30L+ CTC at Amazon
by Shantanu Shubham
23 Feb, 2026
03:00 PM
Zero to Data Analyst: Amazon Analyst Roadmap for 30L+ CTC
by Abhishek Soni
22 Feb, 2026
06:30 AM
Top GenAI Skills to crack 30 LPA+ roles at Amazon & Google
by Sumit Shukla
22 Feb, 2026
08:30 AM
Data Analysis for 20L+ CTC@Flipkart: End-Season Sales dataset
by Sumit Shukla
23 Feb, 2026
01:30 PM
Beginner to GenAI Engineer Roadmap for 30L+ CTC at Amazon
by Shantanu Shubham
23 Feb, 2026
03:00 PM
Zero to Data Analyst: Amazon Analyst Roadmap for 30L+ CTC