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

आप C++ में टेम्प्लेटेड स्ट्रक्चर/क्लासेस को मित्र के रूप में कैसे घोषित कर सकते हैं?

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

How Can You Declare Templated Structs/Classes as Friends in C  ?

टेम्पलेटेड स्ट्रक्चर्स/क्लासेज को मित्र के रूप में घोषित करना

सी के दायरे में, टेम्प्लेटेड स्ट्रक्चर्स या क्लासेज को मित्र के रूप में घोषित करना सिंटैक्स-संबंधित रोडब्लॉक प्रस्तुत कर सकता है। इसे प्राप्त करने के लिए, निम्नलिखित दृष्टिकोण पर विचार करें:

template 
struct foo
{
    template 
    friend class foo;

private:
    // ...
};

यह सिंटैक्स सफलतापूर्वक संकलित होता प्रतीत होता है। हालाँकि, यह foo के सभी टेम्प्लेट इंस्टेंटेशन को एक दूसरे के मित्र के रूप में घोषित करता है, चाहे वे टेम्प्लेट पैरामीटर कुछ भी लें। यह आपके इच्छित उपयोग के मामले में संरेखित हो भी सकता है और नहीं भी।

यदि आपको मित्रता को केवल विशिष्ट तात्कालिकताओं तक सीमित रखने की आवश्यकता है, तो आप इस सिंटैक्स का उपयोग करके इसे प्राप्त कर सकते हैं:

template 
struct foo
{
    template 
    friend struct foo;

private:
    // ...
};

दुर्भाग्य से, यह वाक्यविन्यास एक सामान्य घोषणा की अनुमति नहीं देता है जिसमें foo के सभी संभावित इंस्टेंटेशन शामिल हैं।

इसलिए, यदि आपका लक्ष्य foo के सभी टेम्पलेट इंस्टेंटेशन के बीच मित्रता स्थापित करना है, सी सिंटैक्स की बाधाओं को देखते हुए, फ्रेंड क्लास फू का उपयोग करने वाला दूसरा दृष्टिकोण आपके सबसे करीब है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3