c++ - Is there any difference these two pieces of code? -
# शामिल हैं & lt; stdio.h & gt; कक्षा ए {सार्वजनिक: int a; }; वर्ग बी: सार्वजनिक ए {निजी: int a;}; Int main () {B b; प्रिंटफ़ ("% d", बी.ए.); वापसी 0; }
# शामिल हैं & lt; stdio.h & gt; कक्षा ए {सार्वजनिक: int a; }; वर्ग बी: निजी ए {}; Int main () {B b; प्रिंटफ़ ("% d", बी.ए.); वापसी 0; }
मैं पूछता हूं क्योंकि मुझे अलग-अलग त्रुटियां मिलती हैं:
त्रुटि: 'इंट बी :: ए' निजी है
पूर्व> <एचआर> <प्री>त्रुटि: 'एट ए :: ए' अनुपलब्ध है
इसके अलावा त्रुटियों से क्या पता चलता है, क्या व्यवहार में कोई अंतर नहीं है कोड के इन दो टुकड़ों में से?
ये अलग हैं पहले उदाहरण में, आप चर 'ए' के दो उदाहरण बना रहे हैं आधार वर्ग में से एक, एक बच्चे की कक्षा में। दोनों उदाहरणों में आप चर पर पहुंच प्राप्त नहीं कर सकते।
यदि आपके पास:
ए * पीए = नया बी (); pA- & gt;; // यह ए :: ए को संदर्भित करेगा, जिसे अनुमति दी गई है क्योंकि इसे सार्वजनिक रूप से परिभाषित किया गया था बी * पीबी = नया बी (); पंजाब & gt;; // यह बी :: ए का उल्लेख करेगा, जिसे आप एक्सेस नहीं कर सकते।
यदि आप 'ए' वैरिएबल तक पहुंच छिपाना चाहते हैं, तो मैं दूसरा उदाहरण बताता हूं, निजी विरासत का उपयोग कर रहा हूं। ध्यान रखें कि निजी विरासत भी बेस क्लास निजी में परिभाषित कोई भी कार्य करेगा।
Comments
Post a Comment