Windows 7 - Visual Studio 2010
Qual'è la corretta implementazione dell'overloading per gli stream operator << e >> per una class templates?
Esempio:
codice:
template <typename T>
class myClass
{
// Overloading dell'operatore di output <<
friend ostream & operator<<( ostream &output, const myClass &right );
// Overloading dell'operatore di input >>
friend istream & operator>>( istream &input, myClass &right );
};
Il problema è che cercando di implementarle nel .h ottengo errori di linker. Qual'è la soluzione corretta?
Inoltre perchè per i compilatore non cè differenza tra una dichiarazione del tipo:
codice:
template <typename T>
class myClass
{
void funct( myClass &obj );
};
Ed una dichiarazione del tipo:
codice:
template <typename T>
class myClass
{
void funct( myClass<T> &obj );
};
Qual'è la forma corretta? E perchè?
Grazie.