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

C++ में निजी और संरक्षित के बीच अंतर


इस पोस्ट में, हम C++ में निजी और संरक्षित एक्सेस संशोधक के बीच के अंतर को समझेंगे।

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

  • उन्हें 'निजी' कीवर्ड का उपयोग करके घोषित किया जाता है, उसके बाद ':'।

  • उन्हें कक्षा के बाहर पहुँचा नहीं जा सकता।

  • 'निजी' कीवर्ड एक एक्सेस संशोधक है जो यह सुनिश्चित करता है कि कक्षा के अंदर के कार्यों और विशेषताओं को केवल उस वर्ग के सदस्यों द्वारा ही एक्सेस किया जाता है जिसमें उन्हें घोषित किया गया है।

  • केवल सदस्य कार्यों या मित्र कार्यों को 'निजी' के रूप में लेबल किए गए डेटा तक पहुंचने की अनुमति है।

उदाहरण

#include <iostream>
using namespace std;
class base_class{
   private:
   string my_name;
   int my_age;
   public:
   void getName(){
      cout << "Enter the name... ";
      cin >> my_name;
      cout << "Enter the age... ";
      cin >> my_age;
   }
   void printIt(){
      cout << "The name is : " << my_name << endl;
      cout << "The age is: " << my_age << endl;
   }
};
int main(){
   cout<<"An object of class is created"<< endl;
   base_class my_instance;
   my_instance.getName();
   my_instance.printIt();
   return 0;
}

आउटपुट

/tmp/u5NtWSnX5A.o
An object of class is created
Enter the name... Jane
Enter the age... 34
The name is : Jane
The age is: 34

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

  • संरक्षित पहुंच संशोधक निजी पहुंच संशोधक के समान है।

  • उन्हें 'संरक्षित' कीवर्ड का उपयोग करके घोषित किया जाता है, उसके बाद ':'।

  • कक्षा सदस्य जिसे 'संरक्षित' घोषित किया गया है, कक्षा के बाहर पहुँचा नहीं जा सकता।

  • उन्हें उस वर्ग के भीतर पहुँचा जा सकता है जिसमें उन्हें घोषित किया गया है।

  • उन्हें एक व्युत्पन्न वर्ग द्वारा भी एक्सेस किया जा सकता है, जिसके मूल वर्ग में 'संरक्षित' सदस्य होते हैं।

  • इनका उपयोग इनहेरिटेंस कॉन्सेप्ट के साथ काम करते समय किया जाता है।

उदाहरण

#include <iostream>
using namespace std;
class base_class{
   private:
   string my_name;
   int my_age;
   protected:
   int my_salary;
   public:
   void getName(){
      cout << "Enter the name... ";
      cin >> my_name;
      cout << "Enter the age... ";
      cin >> my_age;
   }
   void printIt(){
      cout << "The name is : " << my_name << endl;
      cout << "The age is: " << my_age << endl;
   }
};
class derived_class : public base_class{
   private:
   string my_city;
   public:
   void set_salary(int val){
      my_salary = val;
   }
   void get_data_1(){
      getName();
      cout << "Enter the city... ";
      cin >> my_city;
   }
   void print_it_1(){
      cout << "The salary is: " << my_salary << endl;
      printIt();
      cout << "The city is: " << my_city << endl;
   }
};
int main(){
   cout<<"Instance of derived class is being created.."<<endl;
   derived_class my_instance_2 ;
   my_instance_2.set_salary(100);
   my_instance_2.get_data_1();
   my_instance_2.print_it_1();
   return 0;
}

आउटपुट

/tmp/u5NtWSnX5A.o
Instance of derived class is being created..
Enter the name... Jane
Enter the age... 23
Enter the city... NewYork
The salary is: 100
The name is : Jane
The age is: 23
The city is: NewYork

  1. C++ में cin और cout स्ट्रीम में क्या अंतर है?

    cin इनपुट स्ट्रीम का एक ऑब्जेक्ट है और इनपुट स्ट्रीम जैसे फाइल, कंसोल, आदि से इनपुट लेने के लिए उपयोग किया जाता है। cout आउटपुट स्ट्रीम का एक ऑब्जेक्ट है जिसका उपयोग आउटपुट दिखाने के लिए किया जाता है। मूल रूप से, cin एक इनपुट स्टेटमेंट है जबकि cout एक आउटपुट स्टेटमेंट है। ) का उपयोग करता है जबकि co

  1. C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में किसी वर्ग के सदस्यों तक पहुंचने के लिए किया जाता है। वे बस विभिन्न परिदृश्यों में उपयोग किए जाते हैं। सी ++ में, वर्ग, संरचना, या संघ के रूप में घोषित प्रकारों को वर्ग प्रकार माना जाता है। तो निम्नलिखित उन तीनों को संदर्भित करता है। a.b का उपयोग केवल तभी किय

  1. सी # में कक्षा और संरचना के बीच अंतर

    वर्ग और संरचना के बीच अंतर करने के लिए, हमें पहले यह समझना होगा कि संरचना और वर्ग दोनों डेटा को रखने और परिभाषित करने के संदर्भ में समान प्रतीत होते हैं। ये दोनों अपने डेटा सदस्यों में कुछ डिफ़ॉल्ट मानों को परिभाषित करने के साथ-साथ कुछ डिफ़ॉल्ट मान भी रख सकते हैं। लेकिन अगर हम उन्हें इस संदर्भ से पर