एक्सेस मॉडिफायर्स क्या हैं?
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में डेटा छिपाने (data hiding) को लागू करने के लिए उपयोग किए जाते हैं। C++ में तीन प्रकार: public, private, protected।
1. Public Access Modifier
पब्लिक सदस्य हर जगह से एक्सेसिबल होते हैं - क्लास के अंदर, बाहर, डेराइव्ड क्लास में। डॉट ऑपरेटर से एक्सेस किए जाते हैं।
उदाहरण
#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
2. Private Access Modifier
प्राइवेट सदस्य केवल क्लास के अंदर के फ़ंक्शन से एक्सेसिबल होते हैं। बाहर से सीधे एक्सेस नहीं किए जा सकते। फ्रेंड फ़ंक्शन एक्सेस कर सकते हैं।
उदाहरण
#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
3. Protected Access Modifier
प्रोटेक्टेड सदस्य प्राइवेट जैसे होते हैं लेकिन डेराइव्ड क्लास (विरासत प्राप्त क्लास) में एक्सेसिबल होते हैं।
उदाहरण
#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
सारांश तालिका
| एक्सेस | क्लास के अंदर | क्लास के बाहर | डेराइव्ड क्लास |
|---|---|---|---|
| Public | ✓ | ✓ | ✓ |
| Private | ✓ | ✗ | ✗ |
| Protected | ✓ | ✗ | ✓ |