Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में प्राइवेट और प्रोटेक्टेड मेंबर्स


C++ में एक क्लास में पब्लिक, प्राइवेट और प्रोटेक्टेड सेक्शन होते हैं जिनमें संबंधित क्लास मेंबर्स होते हैं।

प्राइवेट डेटा मेंबर्स को क्लास के बाहर से एक्सेस नहीं किया जा सकता। उन्हें केवल क्लास या फ्रेंड फंक्शन्स द्वारा एक्सेस किया जा सकता है। डिफ़ॉल्ट रूप से सभी क्लास मेंबर्स प्राइवेट होते हैं।

क्लास में प्रोटेक्टेड मेंबर्स प्राइवेट मेंबर्स के समान होते हैं लेकिन उन्हें डेराइव्ड क्लास या चाइल्ड क्लास द्वारा एक्सेस किया जा सकता है जबकि प्राइवेट मेंबर्स नहीं कर सकते।

क्लास में प्राइवेट और प्रोटेक्टेड मेंबर्स को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है −

उदाहरण

#include <iostream> using namespace std; class Base {    public :    int a = 8;    protected :    int b = 10;    private :    int c = 20; }; class Derived : public Base {    public :    void func() {       cout << "a का मान: " << a;       cout << "\nb का मान: " << b;    } }; int main() {    Derived obj;    obj.func();    return 0; }

आउटपुट

उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।

a का मान: 8 b का मान: 10

अब, आइए उपरोक्त प्रोग्राम को समझते हैं।

क्लास Base में, डेटा मेंबर्स a, b और c हैं जो क्रमशः पब्लिक, प्रोटेक्टेड और प्राइवेट हैं। इसके लिए कोड स्निपेट निम्नलिखित है।

class Base {    public :    int a = 8;    protected :    int b = 10;    private :    int c = 20; };

क्लास Derived क्लास Base को इनहेरिट करती है। फंक्शन func() a और b के मान प्रिंट करता है। यह c का मान प्रिंट नहीं कर सकता क्योंकि वह क्लास Base के लिए प्राइवेट है और क्लास Derived में एक्सेस नहीं किया जा सकता। इसके लिए कोड स्निपेट निम्नलिखित है।

class Derived : public Base {    public :    void func() {       cout << "a का मान: " << a;       cout << "\nb का मान: " << b;    } };

main() फंक्शन में, Derived क्लास का ऑब्जेक्ट obj बनाया जाता है। फिर func() फंक्शन कॉल किया जाता है। इसके लिए कोड स्निपेट निम्नलिखित है।

int main() {    Derived obj;    obj.func();    return 0; }

  1. - C++ में private, public, और protected मोडिफायर्स में अंतर

    डेटा हाइडिंग ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की महत्वपूर्ण विशेषताओं में से एक है जो प्रोग्राम के फ़ंक्शन्स को क्लास टाइप के आंतरिक प्रतिनिधित्व को सीधे एक्सेस करने से रोकती है। क्लास मेंबर्स तक एक्सेस प्रतिबंध को क्लास बॉडी के भीतर लेबल किए गए एक्सेस मोडिफायर्स - public, private, और protected सेक्श

  1. - C++ में फ्रेंड क्लास और फ़ंक्शन

    किसी क्लास का फ्रेंड फ़ंक्शन उस क्लास के स्कोप के बाहर परिभाषित होता है लेकिन उसे उस क्लास के सभी प्राइवेट और प्रोटेक्टेड मेंबर्स को एक्सेस करने का अधिकार होता है। भले ही फ्रेंड फ़ंक्शन के प्रोटोटाइप क्लास परिभाषा में दिखाई देते हैं, फ्रेंड मेंबर फ़ंक्शन नहीं होते। एक फ्रेंड एक फ़ंक्शन, फ़ंक्शन टेम

  1. - C++ में एक्सेस मॉडिफायर्स क्या हैं?

    डेटा छिपाना ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की महत्वपूर्ण विशेषताओं में से एक है जो प्रोग्राम के फंक्शन्स को क्लास टाइप के आंतरिक प्रतिनिधित्व को सीधे एक्सेस करने से रोकता है। क्लास मेंबर्स के लिए एक्सेस प्रतिबंध को लेबल्ड एक्सेस मॉडिफायर्स द्वारा निर्दिष्ट किया जाता है: क्लास बॉडी के भीतर public, pr