सारांश वर्ग के सदस्य पहुंच सी में नियम ++

वोट
0

मैं पूरी तरह से वर्ग के सदस्य पहुंच नियमों के कई अनुच्छेदों में परिभाषित समझने की कोशिश कर रहा हूँ [class.access] सी ++ मानक की धारा। वे काफी जटिल हैं इसलिए मैं एक छोटा लेकिन जरूरत है सही और व्यापक सारांश

मैं इस कार्यक्रम कई स्थितियों में संरक्षित सदस्यों की पहुंच योग्यता की जांच करने के लिए (के बाद से संरक्षित सदस्यों के लिए नियम कठिन प्राप्त करने के लिए कर रहे हैं) ने लिखा है:

#include <iostream>

class B {
  protected:
    int i = 1;
    static int const I = 1;
};

class X: public B {
  protected:
    int j = 2;
    static int const J = 2;
  public:
    void f();
    friend void g();
};

class D: public X {
  protected:
    int k = 3;
    static int const K = 3;
};

void X::f() {
  B b;
  X x;
  D d;
  //std::cout << b.i;  // error: 'i' is a protected member of 'B'
  std::cout << b.I;
  std::cout << x.i;
  std::cout << x.I;
  std::cout << x.j;
  std::cout << x.J;
  std::cout << d.i;
  std::cout << d.I;
  std::cout << d.j;
  std::cout << d.J;
  //std::cout << d.k;  // error: 'k' is a protected member of 'D'
  //std::cout << d.K;  // error: 'K' is a protected member of 'D'
}

void g() {
  B b;
  X x;
  D d;
  //std::cout << b.i;  // error: 'i' is a protected member of 'B'
  //std::cout << b.I;  // error: 'I' is a protected member of 'B'
  std::cout << x.i;
  std::cout << x.I;
  std::cout << x.j;
  std::cout << x.J;
  std::cout << d.i;
  std::cout << d.I;
  std::cout << d.j;
  std::cout << d.J;
  //std::cout << d.k;  // error: 'k' is a protected member of 'D'
  //std::cout << d.K;  // error: 'K' is a protected member of 'D'
}

int main() {
  X x;
  x.f();
  g();
  return 0;
}

मैं इस निष्कर्ष पर पहुंचा

  • सार्वजनिक सदस्यों एक वर्ग के किसी भी संस्थाओं के लिए उपलब्ध हैं;
  • निजी सदस्यों एक वर्ग के केवल सदस्यों और दोस्तों उस वर्ग के लिए उपलब्ध हैं;
  • संरक्षित सदस्यों एक वर्ग के, केवल सदस्यों और उस वर्ग के मित्रों के लिए उपलब्ध हैं के सदस्यों और उस वर्ग करता है, तो संरक्षित सदस्यों रहे हैं व्युत्पन्न वर्ग के दोस्तों के लिए विरासत में मिला व्युत्पन्न वर्ग या व्युत्पन्न वर्ग के आधार वर्ग से है, और आधार वर्ग के सदस्यों के लिए उस वर्ग के है, तो संरक्षित सदस्य हैं स्थिर

मेरे सारांश सटीक और विस्तृत है?

14/02/2020 को 00:02
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

अपने प्रश्न का उपयोग पर आधारित है, तो ये ग भीतर नियम हैं ++। मैं नीचे एक बुनियादी सारांश क्या करेंगे, लेकिन संपूर्ण विवरण के लिए कृपया जाना यहाँ । यह कैसे काम करता है प्रत्येक पर और अधिक विस्तार में जाना जाएगा।

  • सार्वजनिक - कार्य करता है और चर, एक ही कक्षा में पहुँचा जा करने के लिए व्युत्पन्न वर्ग और बाहर कक्षा में सक्षम हैं

  • संरक्षित - कार्य करता है और चर एक ही कक्षा में पहुँचा जा करने में सक्षम हैं, और व्युत्पन्न वर्ग

  • निजी - कार्य करता है और चर एक ही कक्षा में पहुँचा सकते हैं।

यह विरासत की बात आती है तो आप अच्छी तरह से आपके पास अनेक प्रकार:

  • सार्वजनिक - सार्वजनिक और संरक्षित सदस्यों उनके संबंधित पहुँच प्रकार के साथ विरासत में मिला रहे
  • संरक्षित - के रूप में संरक्षित और सुरक्षित सदस्यों उनका पहुंच प्रकार रखेंगे सार्वजनिक सदस्यों लिए गए हैं।
  • निजी - सार्वजनिक और निजी सदस्यों विरासत में मिला दिया जाएगा

नोट : व्युत्पन्न वर्गों निम्न अपवादों के साथ आधार वर्ग के सभी तरीकों इनहेरिट करती है।

  • कंस्ट्रक्टर्स, विनाशकर्ता और आधार वर्ग के प्रति कंस्ट्रक्टर्स

  • आधार वर्ग के अतिभारित ऑपरेटरों।

  • आधार वर्ग के दोस्त कार्य करता है।

अब के लिए दोस्त विनिर्देशक के रूप में, इस सीपीपी संदर्भ से है यहाँ यहाँ आप उदाहरण है और यह कैसे उपयोग करने पर विस्तृत व्याख्या करना होगा।

इसके अलावा आपको वहां के बारे में जानकारी का एक बहुत कुछ के लिए उदाहरण मिल जाएगा, जब यह मानक पुस्तकालय के लिए आता है, यह भी आप क्या भविष्य में मानक और क्या आपके संकलक का समर्थन करता है सुविधाओं के लिए आ रहा है देखने के लिए सक्षम हो जाएगा।

14/02/2020 को 05:22
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more