Bonjour,
je rencontre un petit problème. J'ai crée un template qui doit me permettre de renvoyer un calcul. Or ce calcul dépend de la fonction choisie, que je passe donc en paramètre du template :
Bon, la fonction qui sert au calcul est K, qui prend un double et qui renvoie un double. Ensuite, dans mon main, j'instancie cette class template :
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 <double(*K)(double)> class MLL{ public: // Attributs double a; double b; double c; // Constructeurs //MLL(); // Méthodes double GetValeur(double u){ a = 0.0; b = 0.0; return (a+b+K(u)); } };
Et la fonction gaussienne est dans le fichier Fonctions_poids.cpp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "MLL.h" #include "Fonctions_poids.h" #include <iostream.h> int main (){ MLL<&Gaussienne> modele1; modele1.GetValeur(2.0); }
Or apparemment, je ne peux pas effectuer modele1.GetValeur(2.0). L'erreur renvoyée est :
undefined reference to `MLL<&(Gaussienne(double))>::GetValeur(double)'
Avez vous une idée du problème ?
Merci !
PS : le calcul est bidon par rapport à ce que je veux faire, mais j'y vais petit à petit et ceci est le premier obstacle que je dois surmonter, donc vous attachez pas au sens de ce code, il n'y en a pas, je cherche juste à comprendre sur un exemple.
Partager