सी के दायरे में, टेम्प्लेटेड स्ट्रक्चर्स या क्लासेज को मित्र के रूप में घोषित करना सिंटैक्स-संबंधित रोडब्लॉक प्रस्तुत कर सकता है। इसे प्राप्त करने के लिए, निम्नलिखित दृष्टिकोण पर विचार करें:
templatestruct foo { template friend class foo; private: // ... };
यह सिंटैक्स सफलतापूर्वक संकलित होता प्रतीत होता है। हालाँकि, यह foo के सभी टेम्प्लेट इंस्टेंटेशन को एक दूसरे के मित्र के रूप में घोषित करता है, चाहे वे टेम्प्लेट पैरामीटर कुछ भी लें। यह आपके इच्छित उपयोग के मामले में संरेखित हो भी सकता है और नहीं भी।
यदि आपको मित्रता को केवल विशिष्ट तात्कालिकताओं तक सीमित रखने की आवश्यकता है, तो आप इस सिंटैक्स का उपयोग करके इसे प्राप्त कर सकते हैं:
templatestruct foo { template friend struct foo ; private: // ... };
दुर्भाग्य से, यह वाक्यविन्यास एक सामान्य घोषणा की अनुमति नहीं देता है जिसमें foo के सभी संभावित इंस्टेंटेशन शामिल हैं।
इसलिए, यदि आपका लक्ष्य foo के सभी टेम्पलेट इंस्टेंटेशन के बीच मित्रता स्थापित करना है, सी सिंटैक्स की बाधाओं को देखते हुए, फ्रेंड क्लास फू का उपयोग करने वाला दूसरा दृष्टिकोण आपके सबसे करीब है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3