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

C++ में एक्सेस संशोधक

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में डेटा छिपाने को लागू करने के लिए एक्सेस मॉडिफायर का उपयोग किया जाता है। C++ में तीन प्रकार के एक्सेस मॉडिफायर का उपयोग किया जाता है। ये सार्वजनिक, निजी और संरक्षित हैं। इनके बारे में विवरण इस प्रकार दिया गया है।

सार्वजनिक पहुंच संशोधक

सार्वजनिक घोषित किए गए वर्ग में डेटा सदस्य और सदस्य कार्य अन्य वर्गों सहित सभी के लिए उपलब्ध हैं। क्लास ऑब्जेक्ट के साथ डॉट ऑपरेटर का उपयोग करके प्रोग्राम में किसी भी स्थान से उन्हें एक्सेस किया जा सकता है।

एक प्रोग्राम जो पब्लिक एक्सेस स्पेसिफायर को प्रदर्शित करता है, वह इस प्रकार दिया गया है।

उदाहरण

#include<iostream>
using namespace std;
class Add {
   public:
   int a, b;
   void sum() {
      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
   }
};
int main() {
   Add obj;
   obj.a = 2;
   obj.b = 5;
   obj.sum();
   return 0;
}

आउटपुट

Sum of 2 and 5 is 7

उपरोक्त कार्यक्रम में, ऐड क्लास में दो सार्वजनिक डेटा सदस्य ए और बी हैं। फ़ंक्शन योग () ए और बी के योग को प्रदर्शित करता है। यह नीचे देखा गया है।

class Add {
   public:
   int a, b;
   void sum() {
      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
   }
};

फ़ंक्शन मुख्य () में, क्लास ऐड का ऑब्जेक्ट बनाया जाता है। फिर a और b को main() में इनिशियलाइज़ किया जाता है। ऐसा इसलिए किया जा सकता है क्योंकि वे सार्वजनिक डेटा प्रकार हैं। अंत में योग () कहा जाता है जो ए और बी का योग प्रदर्शित करता है। यह नीचे दिखाया गया है।

Add obj;
obj.a = 2;
obj.b = 5;

obj.sum();

निजी पहुंच संशोधक

निजी घोषित किए गए डेटा सदस्य केवल कक्षा के अंदर के कार्यों से ही पहुंच योग्य होते हैं, न कि कक्षा के बाहर किसी भी कार्य द्वारा। मित्र फ़ंक्शन किसी वर्ग के निजी डेटा सदस्यों तक भी पहुँच सकते हैं।

एक प्रोग्राम जो निजी एक्सेस संशोधक को प्रदर्शित करता है, वह इस प्रकार दिया गया है।

उदाहरण

#include<iostream>
using namespace std;
class Add {
   private:
   int a, b;
   public:
   void setdata(int x, int y) {
      a = x;
      b = y;
   }
   void sum() {
      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
   }
};
int main() {
   Add obj;
   obj.setdata(9,5);
   obj.sum();
   return 0;
}

आउटपुट

Sum of 9 and 5 is 14

उपरोक्त कार्यक्रम में, ऐड क्लास में दो निजी डेटा सदस्य ए और बी हैं। फ़ंक्शन सेटडेटा () ए और बी के मान प्रदान करता है क्योंकि वे निजी चर हैं। फ़ंक्शन योग () ए और बी के योग को प्रदर्शित करता है। यह नीचे देखा गया है।

class Add {
   private:
   int a, b;
   public:
   void setdata(int x, int y) {
      a = x;
      b = y;
   }
   void sum() {
      cout<<"Sum of "<< a <<" and "<< b <<" is "<<a+b;
   }
};

फ़ंक्शन मुख्य () में, क्लास ऐड का ऑब्जेक्ट बनाया जाता है। फिर फ़ंक्शन सेटडेटा () को ए और बी को इनिशियलाइज़ करने के लिए कहा जाता है क्योंकि वे निजी चर हैं। अंत में योग () कहा जाता है जो ए और बी का योग प्रदर्शित करता है। यह नीचे दिखाया गया है।

Add obj;
obj.setdata(9,5);
obj.sum();

संरक्षित एक्सेस संशोधक

वर्ग के डेटा सदस्य जिन्हें संरक्षित घोषित किया गया है, वे घोषित निजी के समान हैं। उन्हें सीधे क्लास के बाहर एक्सेस नहीं किया जा सकता है लेकिन उन्हें बेस क्लास के व्युत्पन्न वर्ग द्वारा एक्सेस किया जा सकता है।

एक प्रोग्राम जो C++ में प्रोटेक्टेड एक्सेस मॉडिफायर प्रदर्शित करता है, वह इस प्रकार है -

उदाहरण

#include<iostream>
using namespace std;
class Parent {
   protected:
   int a, b;
};
class Child: public Parent {
   public:
   void getdata(int x, int y) {
      a=x;
      b=y;
   }
   void putdata() {
      cout<<"a = "<<a<<endl;
      cout<<"b = "<<b<<endl;
   }
};
int main() {
   Child obj;
   obj.getdata(9,1);
   obj.putdata();
   return 0;
}

आउटपुट

a = 9
b = 1

उपरोक्त कार्यक्रम में, मूल वर्ग में दो संरक्षित चर a और b हैं। यह नीचे दिखाया गया है।

class Parent {
   protected:
   int a, b;
};

चाइल्ड क्लास के दो कार्य हैं getdata() तथा putdata() जो क्रमशः a और b के मान लेते हैं और उन्हें प्रदर्शित करते हैं। ये कार्य इसे कर सकते हैं क्योंकि ए और बी संरक्षित चर हैं और चाइल्ड माता-पिता का व्युत्पन्न वर्ग है। इसके लिए कोड स्निपेट नीचे दिया गया है -

class Child: public Parent {
   public:
   void getdata(int x, int y) {
      a = x;
      b = y;
   }
   void putdata() {
      cout<<"a = "<<a<<endl;
      cout<<"b = "<<b<<endl;
   }
};

फ़ंक्शन मुख्य () में, चाइल्ड क्लास का ऑब्जेक्ट ओबीजे बनाया जाता है। फिर फ़ंक्शन getdata () और putdata () कहलाते हैं। यह नीचे दिखाया गया है।

Child obj;
obj.getdata(9,1);
obj.putdata();

  1. सी ++ में विभाज्य योग?

    यहाँ हम देखेंगे कि विभाज्य योग क्या है? n का विभाज्य योग n को छोड़कर n के सभी पूर्ण गुणनखंडों का योग है। उदाहरण के लिए, यदि संख्या 20 है, तो पूर्ण गुणनखंड (1, 2, 4, 5, 10) हैं। तो विभाज्य योग 22 है। एक दिलचस्प तथ्य यह है कि, यदि किसी संख्या का विभाज्य योग ही वह संख्या है, तो वह संख्या एक पूर्ण संख्

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

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

  1. सी # में एक्सेस संशोधक

    Access Modifiers C# में वेरिएबल और फंक्शन के दायरे को निर्दिष्ट करता है। C# द्वारा प्रदान किए गए एक्सेस संशोधक निम्नलिखित हैं: सार्वजनिक सार्वजनिक संशोधक सदस्यों की पहुंच पर कोई प्रतिबंध नहीं लगाता है। संरक्षित व्युत्पन्न वर्ग या वर्ग परिभाषा तक सीमित पहुंच। आंतरिक प्रोग्राम के भीतर आंतरिक एक्सेस