transformer un int to string en parametre
bonjour,
Je suis occupé de créer une class couleur.
Dedans je dois créer un setter gris dont le nom doit correspondre au degré de gris. ex. setGris(20) le nom doit être "gris 20"
Code:
1 2 3 4 5 6 7 8 9 10 11
| int Couleur::setNom(const char*); // prototype de setNom
//SETTER gris
int Couleur::setGris(int val) {
if(0 <= val && val <= 255){
r = v = b = val;
setNom();
return 1;
}
return 0;
} |
Ce que j'essayes donc de faire: est passer directement en paramètre les éléments sans passer par des intermédiaires du style new.
J'essayes donc de faire quelque chose du style de ceci => setNom("gris" + val);
2 problèmes avec cela
- setNom attends en paramètre un const char* et non un string (string n'étant pas autorisé scolairement parlent)
- je codes sur Solaris 11 donc la version C++ est C++98
Je pourrais le résoudre de cette manière
Code:
1 2 3 4 5 6 7 8 9 10 11
| int Couleur::setGris(int val) {
if(0 <= val && val <= 255){
char* tmpNom = new char[9]; // gris + espace + 255 + \0
r = v = b = val;
sprintf(tmpNom, "Gris %d", val);
setNom(tmpNom);
delete tmpNom;
return 1;
}
return 0;
} |
Mais j'essayes d'apprendre comment passe le tout directement en paramètre
Merci d'avance pour votre aide