"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > कक्षा के भीतर परिभाषित मित्र कार्यों तक कैसे पहुँचें?

कक्षा के भीतर परिभाषित मित्र कार्यों तक कैसे पहुँचें?

2024-11-25 को प्रकाशित
ब्राउज़ करें:696

How to Access Friend Functions Defined Within a Class?

एक कक्षा के भीतर परिभाषित मित्र कार्यों तक पहुंच

मित्र कार्यों के साथ काम करते समय, यह समझना आवश्यक है कि उन्हें कैसे परिभाषित और एक्सेस किया जाता है। चूँकि मित्र फ़ंक्शन किसी वर्ग के सदस्य नहीं हैं, इसलिए उन्हें वर्ग के बाहर तक पहुँचने पर विशेष विचार करने की आवश्यकता हो सकती है।

प्रदान किए गए कोड स्निपेट में:

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