PROBLEME AVEC STRING

tekila_bandita Messages postés 248 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 15 mars 2007 - 26 févr. 2006 à 14:45
stl543 Messages postés 4 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 11 mars 2006 - 26 févr. 2006 à 16:15
Bonjour,
J'ai un probleme lorsque je retourne un string avec une methode membre de ma classe Fraction...

Voici l'implementation :

string Fraction::Display(void) const
{
string result = itoa(numerateur) + "/" + itoa(denominateur);
return result;
}

Je compile avec g++ et il me dit que string n'est pas un type si j'ai bien compris...
( -> "string does not name a type" )...

Mais comment cela ce fait-il???
En plus, memesi string n'est pas un type, j'arrive très bien a retourner des objets alors pourquoi pas un string....??

voila, MERCI BEAUCOUP !

1 réponse

stl543 Messages postés 4 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 11 mars 2006
26 févr. 2006 à 16:15
Cela vient probablement du fait que tu as du oublier le "using
namespace std;" en entete de ton fichier. Du coup, il ne te reconnait
pas le type "string", est pour lui, c'est indéfini.



Donc soit tu écris :



std::string Fraction::Display(void) const

{

std::string result = itoa(numerateur) + "/" + itoa(denominateur);

return result;

}



soit tu écris :



using namespace std;

string Fraction::Display(void) const

{

string result = itoa(numerateur) + "/" + itoa(denominateur);

return result;

}






Par ailleurs, il est possible que l'utilisation de itoa te génére
une erreur, car a priori, la fonction a besoin de trois arguments. ( à
moins que tu es défini ta propre fonction.... dans ce cas là, précise
le préfixe de la classe, c'est plus sur ^^) En plus, itoa renvoie un
char*, et non un string.





Ne pourrais tu pas tout simplement tenter un truc du style :



std::ostringstream result;

result << numerateur << "/" << denominateur;

return result.str();




J'espère t'avoir aidé !
0
Rejoignez-nous