c++ - Accessing methods of an object put inside a class -


एक वर्ग एक वर्ग के एक उदाहरण c पास सी । एक और वर्ग B को c के माध्यम से C :: setBlah (); विधि को संशोधित करना होगा।

क्या इसे बनाने में बुरा है एक एक्सेसर सी getC (); इन और फिर ए.ए.टी.सी. () का उपयोग करें setBlah () ?

या मुझे एक विधि A :: setBlah (); को कॉल करना चाहिए C :: setBlah (); ? क्या यह परेशान नहीं है अगर ऐसे कई तरीके हैं?

अधिकांश के साथ "यह करने के लिए बुरा है क्या एक्स? " सवाल, जवाब यह है कि यह पूरी तरह से किसी दिए गए स्थिति पर निर्भर करता है।

कभी-कभी यह एक बहुत ही बुरा विचार हो सकता है कि getC () फ़ंक्शन का क्रम है क्योंकि यह इनकैप्सुलेशन को तोड़ता है। दूसरी बार यह पूरी तरह से ठीक हो सकता है क्योंकि उस विस्तार के इनकिप्सुलेशन अप्रासंगिक हो सकते हैं, और बहुत सारे आवरण कार्यों को लिखने से आपके द्वारा लिखे जाने वाले कोड की मात्रा बढ़ जाती है।

जो भी दिए गए परिस्थिति। getc () मार्ग पर जाने के लिए, सुनिश्चित करें कि आप एक संदर्भ वापस करते हैं;

अन्यथा आप एक ऐसी प्रतिलिपि को संशोधित करेंगे जो ध्वनि की तरह नहीं है जो आप चाहते हैं। या, आप ए :: सी सार्वजनिक करने पर विचार कर सकते हैं ताकि आपको किसी फ़ंक्शन की ज़रूरत न हो।

विचार करने के लिए तीसरे विकल्प से विरासत होगी C , जो getC () या में आवरण कार्यों की आवश्यकता को निकालता है।


Comments