एक कक्षा के भीतर परिभाषित मित्र कार्यों तक पहुंच
मित्र कार्यों के साथ काम करते समय, यह समझना आवश्यक है कि उन्हें कैसे परिभाषित और एक्सेस किया जाता है। चूँकि मित्र फ़ंक्शन किसी वर्ग के सदस्य नहीं हैं, इसलिए उन्हें वर्ग के बाहर तक पहुँचने पर विशेष विचार करने की आवश्यकता हो सकती है।
प्रदान किए गए कोड स्निपेट में:
class A {
public:
friend void fun(A a){std::cout मित्र फ़ंक्शन fun() और fun3() को कक्षा के भीतर परिभाषित किया गया है लेकिन वैश्विक दायरे में घोषित नहीं किया गया है। जबकि टाइप ए के तर्क के कारण fun() को सीधे तर्क-निर्भर लुकअप (ADL) का उपयोग करके एक्सेस किया जा सकता है, fun2() को वैश्विक दायरे में घोषणा के बिना एक्सेस नहीं किया जा सकता है।
fun2() को सही ढंग से एक्सेस करने के लिए , इसे कक्षा के भीतर एक मित्र फ़ंक्शन के रूप में परिभाषित करने के अलावा विश्व स्तर पर घोषित किया जाना चाहिए:
class A {
public:
friend void fun(A a){std::cout इस संशोधित संस्करण में, fun2() को क्लास के बाहर एक सामान्य फ़ंक्शन के रूप में एक्सेस किया जा सकता है।
हालाँकि, मित्र फ़ंक्शन को क्लास के बाहर सामान्य तरीके से परिभाषित करने की अनुशंसा की जाती है लेकिन घोषित किया जाता है मित्र के रूप में:
class A {
friend void fun(A a);
friend void fun2();
friend void fun3();
};
void fun(A a) { std::cout यह दृष्टिकोण सुनिश्चित करता है कि सभी मित्र कार्यों को सही ढंग से परिभाषित और घोषित किया गया है, जिससे उन्हें उद्देश्य के अनुसार सुलभ और प्रयोग करने योग्य बनाया जा सके।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3