smallGame | Je souhaiterais redéfinir les opérateurs de flux d'une classe template, le problème c'est que les opérateurs de flux doivent être déclarés hors de la classe. Exemple sans les templates:
Code :
- class A
- {
- private:
- int entier;
- public :
- A(){}
- friend ostream& operator<<(ostream& out, A);
- };
- ostream& operator<<(ostream& out, A a)
- {
- out<<a.entier<<endl;
- }
|
Avec les template ça ne fonctionne pas:
Code :
- template<typename T>
- class Vector
- {
- protected:
- T _x, _y, _z;
- public:
- Vector();
- Vector(T x, T y, T z);
- virtual ~Vector();
- virtual Vector operator^(Vector v)const;
- friend ostream& operator<<(ostream& out, Vector<T> );
- friend istream& operator>>(ostream& out, Vector<T> );
- };
- template<typename T>
- ostream& operator<<(ostream& out, Vector<T> v)
- {
- out<<v._x<<',';
- out<<v._y<<',';
- out<<v._z<<endl;
- }
|
Comment dois-je faire? merci |