Erreur avec les templates

manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008 - 7 oct. 2008 à 10:54
manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008 - 8 oct. 2008 à 12:43
Bonjour, je débute en c++ et j'ai une erreur avec les templates :

J'ai une classe Fouille :
class Fouille {
public:
  ...
  template <typename TYPE> TYPE get(string);
},

Ma fonction :
template <typename TYPE> TYPE Fouille::get(string n) {
  ..
}

Et mon appel de fonction :
fouille->get("nom");

Ca me génere l'erreur suivante :
erreur: no matching function for call to ‘Fouille::get(const char [4])’

Quelqu'un a une idée ??

7 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
7 oct. 2008 à 13:29
Bonjour.
Il y a une différence entre un objet du type string et un char [].
manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008
7 oct. 2008 à 13:31
ok merci ! mais comment je fais alors pour l'adapter ??
manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008
7 oct. 2008 à 13:32
De toute façon si je fais un :
string nom = "nom";
et que j'appelle la fonction avec fouillet->get(nom); ça ne marche quand meme pas
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
7 oct. 2008 à 13:36
Quand tu fais ton remplacement tu as toujours la même erreur ?

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008
7 oct. 2008 à 13:40
j'ai ça :
erreur: no matching function for call to ‘Fouille::get(std::string&)'
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
7 oct. 2008 à 14:38
Il faut peut etre mettre
class Fouille {
public:
  ...
  template <typename TYPE> TYPE get(std::string);
},

Ma fonction :
template <typename TYPE> TYPE Fouille::get(std::string n) {
manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008
8 oct. 2008 à 12:43
Non je déja met using namespace std;
Rejoignez-nous