ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, हम पेरेंट क्लास की विशेषताओं को इनहेरिट कर सकते हैं। पेरेंट क्लास को बेस क्लास के रूप में जाना जाता है जबकि चाइल्ड क्लास को डेराइव्ड क्लास के रूप में जाना जाता है। डेराइव्ड क्लास बेस क्लास के डेटा मेंबर्स, मेंबर फंक्शन्स को इनहेरिट कर सकती है।
यदि डेटा मेंबर्स पब्लिक हैं, तो उन्हें डेराइव्ड क्लास, सेम क्लास और क्लास के बाहर से एक्सेस किया जा सकता है। यदि डेटा मेंबर्स प्रोटेक्टेड हैं, तो उन्हें डेराइव्ड और सेम क्लास द्वारा एक्सेस किया जा सकता है, लेकिन क्लास के बाहर से एक्सेस नहीं किया जा सकता। यदि डेटा मेंबर्स प्राइवेट हैं, तो केवल सेम क्लास उन्हें एक्सेस कर सकती है।
C++ भाषा में इनहेरिटेंस का एक उदाहरण निम्नलिखिक है,
उदाहरण
#include <bits/stdc++.h> using namespace std; class Base { public: int a; protected: int b; private: int c; }; class Derived : public Base { public: int x; }; int main() { Derived d; d.a = 10; d.x = 20; cout << "डेराइव्ड क्लास डेटा मेंबर मान: " << d.x << endl; cout << "बेस क्लास डेटा मेंबर मान: " << d.a << endl; return 0; } आउटपुट
डेराइव्ड क्लास डेटा मेंबर मान: 20 बेस क्लास डेटा मेंबर मान: 10
उपरोक्त प्रोग्राम में, डेराइव्ड क्लास बेस क्लास और उसके डेटा मेंबर्स को इनहेरिट कर रही है। डेराइव्ड क्लास ऑब्जेक्ट d बनाया गया है और बेस और डेराइव्ड क्लास के डेटा मेंबर्स a और x को कॉल करने के लिए उपयोग किया जाता है। लेकिन यह बेस क्लास के वेरिएबल b और c को एक्सेस नहीं कर सकता क्योंकि वे प्रोटेक्टेड और प्राइवेट हैं, यदि हम उन्हें एक्सेस करने का प्रयास करेंगे तो एरर दिखाएगा।
Derived d; d.a = 10; d.x = 20;