Erreur de link avec surcharge operator
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:
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:
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:
1 2
|
[Linker Error] undefined reference to `operator+(Matrix<double>&, Matrix<double>&)' |
Quelqu'un aurait une idée d'où pourrait provenir cette erreur ?