Access specifiers: public, private, protected c++ In Hindi
C++ प्रोग्रामिंग लैंग्वेज में क्लास एक्सेस स्पेसिफायर यूजर डिफाइन क्लास मेंबर्स (जिसमे मौजूदा क्लास डेटा मेंबर्स और क्लास डिक्लेअर मेंबर फंक्शन दोनों) की मौजूदा प्रोग्राम क्लास विज़िबिलिटी और एक्सेसिबिलिटी को कंट्रोल या मैनेज करते हैं. एक सिंपल C++ प्रोग्राम में क्लास विजिबिलिटी फीचर्स आपको मौजूदा प्रोग्राम में डिक्लेअर इंडिविजुअल क्लास के वेरिएबल पैरामीटर डाटा टाइप को मल्टीप्ल इंडिविजुअल पब्लिक, प्राइवेट, और प्रोटेक्टेड बिहेवियर को डिफाइन करने में हेल्प करते है।

There are three main types of access specifiers in the C++ programming language.
- Public
- Private
- Protected
C++ प्रोग्रामिंग में पब्लिक, प्राइवेट, और प्रोटेक्टेड क्लास एक्सेस स्पेसिफायर का यूज़ क्लास में इंटरनल या डिराइव्ड सबक्लास से क्लास मेंबर्स की एक्सेसिबिलिटी को कण्ट्रोल या डिफाइन करने में हेल्प करते है।
Public Class Access Specifier in C++.
C++ प्रोग्राम में डिफाइन पब्लिक क्लास डाटा टाइप के रूप में डिक्लेयर किए गए वेरिएबल पैरामीटर क्लास मेंबर्स प्रोग्राम में कहीं से भी एक्सेस और मैनेज किए जा सकते हैं. जिसमें इन क्लास डिक्लेअर डाटा टाइप वेरिएबल को क्लास में इंटरनल या उस क्लास के किसी भी ऑब्जेक्ट जैसे सबक्लास के माध्यम से एक्सेस और मैनेज किया जा सकता है। याद रहे, यूजर डिफाइन पब्लिक क्लास मेंबर्स को क्लास के ऑब्जेक्ट्स और अन्य क्लास फंक्शन्स से डायरेक्ट कॉल किया जा सकता है।
Example of a public class access specifier in C++.
#include <iostream>
using namespace std;
class Triangle {
public:
// here we declare a Public class data members type
int Tribase;
int Triheight;
// here we declare a Public class member function
float DisplaytriArea() {
return 0.5 * Tribase * Triheight;
}
};
int main() {
Triangle tri;
tri.Tribase = 20; // here we try to Accessing public data member
tri.Triheight = 10; // here we try to Accessing public data member
cout << “the Area of triangle with public class member – ” << tri.DisplaytriArea() << endl; // here it Calling the public class member function
return 0;
}
Explanation of the public class access specifier in C++.
- यहाँ इस प्रोगाम में डिक्लेअर Tribase और Triheight क्लास मेंबर, साथ ही DisplaytriArea() क्लास मेंबर फ़ंक्शन, पब्लिक डाटा टाइप के रूप में डिक्लेयर किए गए हैं. इस वजह से इन्हे क्लास के बाहर से मेन फ़ंक्शन में भी एक्सेस और कण्ट्रोल किया जा सकता है।
Private class access specifier in C++.
C++ प्रोग्राम में डिफाइन प्राइवेट क्लास डाटा मेंबर वेरिएबल के रूप में डिक्लेयर किए गए डाटा टाइप मेंबर क्लास के बाहर से एक्सेस और कण्ट्रोल नहीं किए जा सकते है। प्राइवेट क्लास मेंबर को सिर्फ़ उसी क्लास के मेंबर फ़ंक्शन या फ्रेंड फ़ंक्शन क्लास से ही एक्सेस और कण्ट्रोल किया जा सकता है। यदि मौजूदा क्लास में डिफ़ॉल्ट रूप से, अगर कोई क्लास मेंबर एक्सेस स्पेसिफ़ायर डिफाइन नहीं किया गया है. तो मोजूदा क्लास के सभी डाटा टाइप मेंबर डिफ़ॉल्ट प्राइवेट नेचर में डिफाइन होते हैं।
C++ प्रोग्राम में डिफाइन प्राइवेट क्लास डेटा टाइप मेंबर को एनकैप्सुलेट करने और बिना परमिशन को एक्सेस या मॉडिफ़िकेशन को स्टॉप के लिए प्राइवेट कीवर्ड के साथ डाटा टाइप क्लास मेंबर को डिफाइन करें। प्राइवेट क्लास मेंबर डाटा टाइप ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में एनकैप्सुलेशन का एक मुख्य फीचर्स है।
Example of a private class access specifier in C++.
#include <iostream>
using namespace std;
class Triangle {
private:
// here we declare a Private taingle class data member’s type
int Tribase;
int Triheight;
public:
// here we declare a public class member function data type
void setDimensions(int tb, int th) {
Tribase = tb; // here we Modifying the private class data type
Triheight = th; // here we Modifying the private class data type
}
float DisplaytriArea() {
return 0.5 * Tribase * Triheight;
}
};
int main() {
Triangle tri;
tri.setDimensions(20, 10); // here we Accessing private data with public class method data type
cout << “the Area of triangle with private class member – ” << tri.DisplaytriArea() << endl; // here it Calling public member function
return 0;
}
Explanation of the private class access specifier in C++.
- यहाँ इस प्रोगाम में डिक्लेअर Tribase और Triheight क्लास मेंबर प्राइवेट नेचर के होते हैं, इसका मतलब है कि इन प्राइवेट क्लास मेंबर डाटा टाइप को बाहर से डायरेक्ट एक्सेस नहीं किया जा सकता है. जैसे, मौजूदा main() क्लास से इन यूजर डिफाइन क्लास में प्राइवेट क्लास मेंबर्स तक एक्सेस सिर्फ़ setDimensions() मेथड से ही एक्सेस किया गया है, जो की एक पब्लिक क्लास मेथड है।
Protected Class Access Specifier in C++.
C++ प्रोग्राम में डिफाइन प्रोटेक्टेड क्लास मेंबर के रूप में डिक्लेयर किए गए यूजर डिफाइन क्लास मेंबर्स डाटा टाइप को कुछ पर्टिकुलर कस्टम क्लास मेंबर के रूप में एक्सेस किया जा सकता हैं. प्रोटेक्टेड क्लास मेंबर को डिराइव्ड क्लास या सबक्लास के मेंबर फ़ंक्शन चाहे वे डिराइव्ड क्लास के बाहर से डिफाइन किए गए हों. जैसाकि, किसी यूजर डिफाइन क्लास में डिक्लेअर डिराइव्ड क्लास के माध्यम से ही प्रोटेक्टेड क्लास मेंबर्स डाटा टाइप को क्लास के बाहर से एक्सेस किया जा सकता है।
C++ प्रोग्राम में डिक्लेअर प्रोटेक्टेड क्लास मेंबर डाटा टाइप का यूज़ सामान्य रूप से क्लास हायरार्की डिज़ाइन करने में किया जाता है. जहाँ C++ यूजर चाहते हैं कि डिराइव्ड क्लास या सबक्लास के पास कुछ क्लास मेंबर्स का ही एक्सेस हो, लेकिन C++ यूजर उन्हें बाहरी दुनिया के सामने एक्सपोज़ नहीं करना चाहते है.
Example of a protected class access specifier in C++.
#include <iostream>
using namespace std;
class Shape {
protected:
// here we declare a Protected data type members
int Tribase, Triheight;
public:
void setDimensions(int tb, int th) {
Tribase = tb;
Triheight = th;
}
};
class Triangle : public Shape {
public:
// hee we use Public class member function that can access protected class data members of the base class
float DisplayTriArea() {
return 0.5 * Tribase * Triheight; // here we Accessing a protected class members of Shape class
}
};
int main() {
Triangle tri;
tri.setDimensions(20, 10); // here we Accessing a protected class members via derived subclass method
cout << “the Area of triangle with protected class member – ” << tri.DisplayTriArea() << endl; // here it Calling the derived class member function
return 0;
}
Explanation of a protected access specifier in C++.
- यहाँ इस एक्साम्प्ल में Shape क्लास में Tribase और Triheight मेंबर्स डाटा टाइप प्रोटेक्टेड के रूप में डिफाइन हैं। यहाँ शेप क्लास में डिक्लेअर प्रोटेक्टेड क्लास मेंबर्स को main() क्लास फ़ंक्शन से डायरेक्ट एक्सेस नहीं किया जा सकता है।
- जैसाकि, यहाँ इस एक्साम्प्ल में Triangle क्लास है, जो Shape से डिराइव्ड एक सबक्लास है, जो मौजूदा क्लास में प्रोटेक्टेड मेंबर्स को एक्सेस कर सकता है, और उन्हें DisplayTriArea() जैसे अपने मेथड्स को यूज़ कर सकता है।
Access control and inheritance in C++.
C++ प्रोग्राम में जब इनहेरिटेंस कांसेप्ट को यूज़ किया जाता है, तो क्लास में डिक्लेअर यूजर डिफाइन एक्सेस स्पेसिफायर्स इस बात पर इम्पैक्ट करते हैं कि मौजूदा क्लास में डिफाइन बेस क्लास के मेंबर्स डाटा टाइप वेरिएबल को डिराइव्ड क्लास या सबक्लास में कैसे इनहेरिट किया जाता है, और एक्सेस किया जाता है.
Public inheritance concept in C++.
- यूजर डिफाइन बेस क्लास के पब्लिक क्लास मेंबर्स डाटा टाइप डिराइव्ड क्लास में पब्लिक नेचर में होते हैं।
- जहा बेस क्लास के प्रोटेक्टेड क्लास मेंबर्स डाटा टाइप डिराइव्ड क्लास में प्रोटेक्टेड नेचर के होते हैं।
- इसमें बेस क्लास के प्राइवेट क्लास मेंबर्स डाटा टाइप डिराइव्ड क्लास में एक्सेस नहीं किए जा सकते हैं।
Example of public inheritance in C++.
#include <iostream>
class Root {
public:
int publicParametr;
Root() : publicParametr(0) {}
void preview() {
std::cout << “here user define Root class preview() function \n”;
}
};
class Derived : public Root {
public:
void accessPublicData() {
publicParametr = 100; // here Public class member is accessible
std::cout << “here publicParametr in Derived class is – ” << publicParametr << std::endl;
}
};
int main() {
Derived d;
d.accessPublicData();
d.preview(); // here it Inherited public function member
return 0;
}
Explanation of public inheritance in C++.
- यहाँ इस एक्साम्प्ल में बेस क्लास से publicParametr पब्लिक क्लास डाटा टाइप मेंबर है, और इसे डिराइव्ड क्लास में एक्सेसिबल किया गया है, जो की एक पब्लिक इनहेरिटेंस के रूप में डिफाइन है। जो की preview() फंक्शन बेस क्लास से इनहेरिटेड है, और डिराइव्ड ऑब्जेक्ट में कॉल किया जाता है।
