encapsulation - In C++, given a member function in class A, can we restrict its access to only class B, without giving B complete friend access to A? -
संभव डुप्लिकेट:
मुझे यह कुछ समय चाहिए था और ऐसा करने के लिए एक सभ्य तरीके से आने में सक्षम नहीं हुए हैं।
कहो मुझे कक्षा ए में एक सदस्य का कार्य मिला है। मैं सक्षम होना चाहता हूं उस समारोह को किसी असंबंधित वर्ग बी से कॉल करने के लिए, लेकिन आम तौर पर कॉल करने योग्य नहीं है। आप कह सकते हैं, "ज़रूर, फ़ंक्शन को निजी बनाओ और ए को मित्र बनने के लिए बी की घोषणा करें।" यही मैं कर रहा हूं, लेकिन यह थोड़ा अधिक लगता है मैं वास्तव में ए में सब कुछ तक बी एक्सेस नहीं देना चाहता, केवल एक फ़ंक्शन।
संक्षेप में: a :: func () केवल कक्षा बी के द्वारा योग्य है, लेकिन बी ने ए के मित्र को घोषित नहीं किया। संभव है?
आप ए < / कोड> कई शुद्ध सार बेस कक्षाओं में और फिर बी इंटरफ़ेस के लिए एक संदर्भ दे जो उपयुक्त विधि है अन्य वर्गों में केवल इंटरफेस मिलेगा जो इस पद्धति को शामिल नहीं करते हैं। ध्यान रखें कि यह बहुत स्केल योग्य नहीं है, क्योंकि इंटरफेस की संख्या बहुत बड़ी हो सकती है।
Comments
Post a Comment