मान लीजिए कि मेरे पास एक टेम्पलेट क्लास है जिसे मैं मित्र वर्ग के रूप में घोषित करने की कोशिश कर रहा हूं। क्या मुझे कक्षा घोषित करना चाहिए या इसे अपना टेम्पलेट देना चाहिए? दोनों यहां काम करते प्रतीत होते हैं, लेकिन मुझे इस बारे में दिलचस्पी है कि इसे सही तरीके से कैसे किया जाए।टेम्पलेट मित्र वर्ग: आगे की घोषणा या ...?
उदाहरण:
template <typename E>
class SLinkedList;
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
friend class SLinkedList<E>;
};
या
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
template <typename T>
friend class SLinkedList;
};
-
क्या इसके लायक के लिए, इस कोड क्या सीधे एक डाटा संरचनाओं और एल्गोरिदम पाठ्यपुस्तक से बाहर है से संशोधित किया गया है। हालांकि, पुस्तक निम्नलिखित कोड जो Xcode में त्रुटि "गैर टेम्पलेट वर्ग के 'SLinkedList'
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
friend class SLinkedList<E>;
};
इसलिए इस सवाल का। सी पर नए ++ स्पष्ट विशेषज्ञता देता है उपयोग करता है।
दिलचस्प सुझाव। चियर्स – badfilms