क्यों मैं एक दोस्त फ़ंक्शन के लिए एक ही टेम्पलेट पैरामीटर का उपयोग नहीं कर सकता जो टेम्पलेट तर्क लेता है? मेरा मतलब है कि नीचे दिया गया कोड ठीक है!ऑपरेटर << (ostream & os, ...) टेम्पलेट वर्ग
template <class Vertex>
class Edge
{
template <class T>
friend ostream& operator<<(ostream& os, const Edge<T>& e);
/// ...
};
template <class T>
ostream& operator<<(ostream& os, const Edge<T>& e)
{
return os << e.getVertex1() << " -> " << e.getVertex2();
}
लेकिन यह ठीक नहीं है। क्यूं कर? समस्या क्या है? (मैं लिंकर त्रुटि मिलती है।)
template <class Vertex>
class Edge
{
friend ostream& operator<<(ostream& os, const Edge<Vertex>& e);
/// ...
};
template <class T>
ostream& operator<<(ostream& os, const Edge<T>& e)
{
return os << e.getVertex1() << " -> " << e.getVertex2();
}
एक दोस्त एक टेम्पलेट है, अन्य है नहीं। – Xeo