Bonjour

Dans le but de réaliser une structure de matrice j'ai besoin de surcharger l'opérateur d'addition + afin de pouvoir additionner deux matrices. J'utilise aussi un template dont le paramètre T correspond au type des éléments de ma matrice.Tout le code suivant ce trouve dans le même fichier .h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
template <typename T>
struct Matrix
{
   private :
      ...
   public   :
      ...
   friend Matrix<T> * operator + (Matrix<T> & matrix1, Matrix<T> & matrix2);
 
};
 
 
template <typename T>
Matrix<T> * operator + (Matrix<T> & matrix1, Matrix<T> & matrix2)
{
    .....
}
{
et dans un autre fichier (main.cpp) j'ai la fonction main() et j'essaie d'additionner deux matrices :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Matrix<double> matrix1(3,4);
Matrix<double> matrix2(3,4);
 
Matrix<double> * matrix3 = matrix1 + matrix2;
Mais j'obtiens l'erreur de link suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
  [Linker Error] undefined reference to `operator+(Matrix<double>&, Matrix<double>&)'
Quelqu'un aurait une idée d'où pourrait provenir cette erreur ?