सी++ एक्सेस स्पेसिफायर्स
एक्सेस स्पेसिफायर
public
अब तक, आप हमारे सभी वर्ग उदाहरणों में प्रकट होने वाले कीवर्ड से अच्छी तरह परिचित हो चुके हैं:
उदाहरण
class MyClass { // The class
public: // Access specifier
// class members goes here
};
public
कीवर्ड एक एक्सेस स्पेसिफायर है।
एक्सेस स्पेसिफायर परिभाषित करते हैं कि किसी वर्ग के सदस्यों (विशेषताओं और विधियों) तक कैसे पहुँचा जा सकता है। उपरोक्त उदाहरण में, सदस्य हैं public
- जिसका अर्थ है कि उन्हें कोड के बाहर से एक्सेस और संशोधित किया जा सकता है।
हालाँकि, क्या होगा यदि हम चाहते हैं कि सदस्य निजी हों और बाहरी दुनिया से छिपे हों?
C++ में, तीन एक्सेस स्पेसिफायर हैं:
public
- सदस्यों को कक्षा के बाहर से पहुँचा जा सकता हैprivate
- सदस्यों को कक्षा के बाहर से एक्सेस (या देखा) नहीं किया जा सकता हैprotected
- सदस्यों को कक्षा के बाहर से एक्सेस नहीं किया जा सकता है, हालांकि, उन्हें इनहेरिट की गई कक्षाओं में एक्सेस किया जा सकता है। आप वंशानुक्रम के बारे में बाद में और जानेंगे ।
public
निम्नलिखित उदाहरण में, हम और private
सदस्यों के बीच अंतर प्रदर्शित करते हैं:
उदाहरण
class
MyClass {
public: // Public access
specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass
myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; //
Not allowed (private)
return 0;
}
यदि आप किसी निजी सदस्य तक पहुँचने का प्रयास करते हैं, तो एक त्रुटि उत्पन्न होती है:
error: y is private
नोट: किसी वर्ग के निजी सदस्यों को उसी वर्ग के अंदर सार्वजनिक पद्धति का उपयोग करके एक्सेस करना संभव है। यह कैसे करना है, इस पर अगला अध्याय ( एनकैप्सुलेशन ) देखें।
युक्ति: अपनी कक्षा विशेषताओं को निजी (जितनी बार आप कर सकते हैं) घोषित करना अच्छा अभ्यास माना जाता है। इससे कोड को गड़बड़ाने के लिए स्वयं (या अन्य) की संभावना कम हो जाएगी। यह एनकैप्सुलेशन अवधारणा का मुख्य घटक भी है, जिसके बारे में आप अगले अध्याय में और जानेंगे।
नोट: डिफ़ॉल्ट रूप से, एक वर्ग के सभी सदस्य होते हैं private
यदि आप एक एक्सेस स्पेसिफायर निर्दिष्ट नहीं करते हैं:
उदाहरण
class
MyClass {
int x; // Private attribute
int y; // Private attribute
};