c++ - Can inner classes access private variables? -


  क्लास बाहरी {class इनर {सार्वजनिक: इनर () {} void func (); }; निजी: स्थैतिक कॉन्स्ट चार * कॉन्स्ट माइकोन्स्ट; Int var; }; शून्य बाहरी: इनर :: फ़ेन्क () {var = 1; } Const char * const outer :: MYCONST = "myconst";  

यह त्रुटि तब होती है जब मैं कक्षा बाहरी के साथ संकलित करता हूं: इनर के नाम पर `var 'नाम का कोई भी सदस्य नहीं है

एक आंतरिक वर्ग उस श्रेणी का मित्र है जिसे इसे परिभाषित किया जाता है।
तो, हाँ; प्रकार का कोई वस्तु बाहरी :: इनर प्रकार के ऑब्जेक्ट के सदस्य चर var का उपयोग कर सकते हैं बाहरी

विपरीत जावा हालांकि, किसी भी प्रकार के ऑब्जेक्ट के बीच कोई संबंध नहीं है Outer :: Inner और पैरेंट क्लास का ऑब्जेक्ट। आपको माता-पिता के बच्चे के रिश्ते को मैन्युअल रूप से बनाना होगा।

  #include & lt; स्ट्रिंग & gt; # शामिल करें & lt; iostream & gt; क्लास आउटर {class इनर {सार्वजनिक: इनर (बाह्य और एक्स): पेरेंट (x) {} void func () {std :: string a = "myconst1"; Std :: cout & lt; & lt; माता-पिता। & Lt; & lt; std :: endl; अगर (एक == MYCONST) {std :: cout & lt; & lt; "स्ट्रिंग समान" & lt; & lt; std :: endl; } और {std :: cout & lt; & lt; "स्ट्रिंग समान नहीं" & lt; & lt; std :: endl; }} निजी: बाहरी और amp; माता-पिता; }; सार्वजनिक: बाहरी (): i (* this), var (4) {} बाहरी (बाह्य और अन्य): i (अन्य), var (22) {} शून्य से फ़ंक्शन () (i.func ()); } निजी: स्थिर const char * const MYCONST; इनर आई; Int var; }; Const char * const outer :: MYCONST = "myconst"; Int main () {बाहरी ओ 1; बाहरी ओ 2 (ओ 1); o1.func (); o2.func (); }  

Comments