सी ++ एक्सेस मॉडिफायर

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

C ++ जैसी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं की मुख्य विशेषताओं में से एक डेटा छिपाना है

डेटा छिपाना एक वर्ग के डेटा सदस्यों तक पहुंच को प्रतिबंधित करने को संदर्भित करता है। यह अन्य कार्यों और कक्षाओं को वर्ग डेटा के साथ छेड़छाड़ से रोकने के लिए है।

हालांकि, कुछ सदस्य कार्यों और सदस्य डेटा को सुलभ बनाना भी महत्वपूर्ण है ताकि छिपे हुए डेटा को अप्रत्यक्ष रूप से हेरफेर किया जा सके।

C ++ का एक्सेस संशोधक हमें यह निर्धारित करने की अनुमति देता है कि कौन से वर्ग के सदस्य अन्य वर्गों और कार्यों के लिए सुलभ हैं, और कौन से नहीं हैं।

उदाहरण के लिए,

 class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) ); 

यहां, कीवर्ड Patientका उपयोग करके वर्ग के निदान रोगी और वर्ग को छिपाया जाता है private, जबकि सदस्य कार्यों को publicकीवर्ड का उपयोग करके सुलभ बनाया जाता है ।

C ++ एक्सेस मॉडिफायर के प्रकार

C ++ में, 3 एक्सेस मॉडिफायर हैं:

  • public
  • private
  • protected

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

  • publicकीवर्ड सार्वजनिक सदस्यों (डेटा और कार्यों) बनाने के लिए प्रयोग किया जाता है।
  • सार्वजनिक सदस्य कार्यक्रम के किसी भी भाग से सुलभ हैं।

उदाहरण 1: C ++ सार्वजनिक पहुँच संशोधक

 #include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )

आउटपुट:

 अपनी आयु दर्ज करें: 20 आयु = 20

इस कार्यक्रम में, हमने एक वर्ग बनाया है जिसका नाम है Sample, जिसमें एक publicपरिवर्तनशील आयु और एक publicफ़ंक्शन है displayAge()

में main(), हमने Sampleobj1 नामक वर्ग का एक ऑब्जेक्ट बनाया है । हम फिर कोड का उपयोग करके सीधे सार्वजनिक तत्वों तक पहुँचते हैं obj.ageऔर obj.displayAge()

निजी प्रवेश संशोधक

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

उदाहरण 2: C ++ निजी एक्सेस विनिर्देशक

 #include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )

आउटपुट:

 अपनी आयु दर्ज करें: 20 आयु = 20

में main(), ऑब्जेक्ट obj1 सीधे वर्ग चर आयु तक नहीं पहुंच सकता है।

 // error cin>> obj1.age;

हम सार्वजनिक समारोह के माध्यम से केवल अप्रत्यक्ष रूप से उम्र में हेरफेर कर सकते हैं displayAge(), क्योंकि यह फ़ंक्शन इस तर्क को आयु असाइन करता है अर्थात फ़ंक्शन पैरामीटर int a

संरक्षित पहुँच संशोधक

Before we learn about the protected access specifier, make sure you know about inheritance in C++.

  • The protected keyword is used to create protected members (data and function).
  • The protected members can be accessed within the class and from the derived class.

Example 3: C++ protected Access Specifier

 #include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )

Output:

 Enter your age: 20 Age = 20

Here, ChildSample is an inherited class that is derived from Sample. The variable age is declared in Sample with the protected keyword.

This means that ChildSample can access age since Sample is its parent class.

We see this as we have assigned the value of age in ChildSample even though age is declared in the Sample class.

Summary: public, private, and protected

  • public elements can be accessed by all other classes and functions.
  • privateतत्वों को उस वर्ग के बाहर एक्सेस नहीं किया जा सकता है जिसमें वे घोषित किए जाते हैं, friendकक्षाओं और कार्यों को छोड़कर ।
  • protectedतत्वों की तरह ही हैं private, सिवाय वे व्युत्पन्न वर्गों द्वारा पहुँचा जा सकता है।
विनिर्देशक एक ही कक्षा व्युत्पन्न वर्ग क्लास के बाहर
public हाँ हाँ हाँ
private हाँ नहीं न नहीं न
protected हाँ हाँ नहीं न

नोट: डिफ़ॉल्ट रूप से, C ++ में वर्ग के सदस्य private, जब तक कि अन्यथा निर्दिष्ट न हों।

दिलचस्प लेख...