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
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
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) { ..... } {
Mais j'obtiens l'erreur de link suivante :
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;
Quelqu'un aurait une idée d'où pourrait provenir cette erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [Linker Error] undefined reference to `operator+(Matrix<double>&, Matrix<double>&)'
Partager