Une Class et des Char ...

Résolu
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 - 15 sept. 2004 à 20:44
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 - 17 sept. 2004 à 20:45
Vala j'ai un petit probleme avec ma source :
class Test
{
public:
Test (char initialName[15]);
char LireName() const { return wName; }
void DefName (char name[15]) { strcpy (wName,name); }
private:
char wName[15];
};
Le probleme est que quand je compile il me dit "cannot convert from 'const char [15]' to 'char'" en parlant du "return" de LireName(). J'aimerai savoir comment faire pour que ca marche ... je comprend pas la...

(ui je C je suis un debutant et alors ?? :p)

Thx so much

12 réponses

cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
16 sept. 2004 à 16:51
ahh
j'ai trouvé ...
je ne comprend pas pourquoi mais ca marche :p

char *LireName() { return &wName[0]; }

ca me le retourne en entier ^^

merci a tous
3
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
15 sept. 2004 à 20:45
Ps: j'ai tout le reste du programme qui va avec et sans erreur bien sure :p il n'y a que le LireName qui marche pas ...
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
15 sept. 2004 à 21:07
Hello

wName est un tableau de char, donc return wName renvoie l'adresse du premier caractère de wName.
Si tu veux renvoyer la valeur du premier caractère de wName tu mets return wName[0]
Si tu veux renvoyer l'adresse du premier caractère de wName, tu mets :
char* LireName() const {return wName ;}


Un petit conseil : pour les noms de variables/fonctions choisis entre Anglais et Français parce que là c'est un peu étrange mais c'esst pas dramatique.

A++

Chouchou

Ps: tu dis : "J'aimerai savoir comment faire pour que ca marche" mais tu ne dis pas ce que tu voudrais qui ce passe, lorsque ça marchera. Sois précis dans tes questions, les réponses en seront d'autant plus présices.
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
15 sept. 2004 à 21:16
Ta fonction LireName renvoi un char alors que la variable retourner est un tableau.
Déclares plutot ta fonction avec char* LireName (....).

Shell
0

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

Posez votre question
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
15 sept. 2004 à 21:42
error C2440: 'return' : cannot convert from 'const char [15]' to 'char *'

en parlant de "char* LireName() const { return wName; }"
dans
class Test
{
public:
Test (char initialName[15]);
char* LireName() const { return wName; }
void DefName (char name[15]) { strcpy (wName,name); }
private:
char wName[15];
};

En faite je voudrais faire ca:
Test zeTest("name1");
pour ensuite pouvoir lire zeTest.LireName();
et modifier avec zeTest.DefName("newname");
mais la ca bloque ...

...
0
cs_Marvin Messages postés 77 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 19 juin 2006 1
16 sept. 2004 à 08:03
class Test
{
public:
Test (char initialName[15]);
char* LireName() const { return &wName; }
void DefName (char name[15]) { strcpy (wName,name); }
private:
char wName[15];
}

essaye sa (j'ai pas eu le temp de bien verifier mais mon compilateur ne m'a sorti que des erreurs sur le main(fait a la va vite sans tous les includes, j'ai pas de temp je doit aller bosser)
@+ et dsl si sa marche pas
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
16 sept. 2004 à 10:00
Vire le const après LireName il ne sert a rien.
Ensuite ca devrais marher.

Shell
0
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
16 sept. 2004 à 16:45
ca marche paaaaaaaaaaaaaaas (snif)

error C2440: 'return' : cannot convert from 'char (*)[15]' to 'char *'

c un peu saoulant ...
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
16 sept. 2004 à 22:53
oula

const char *LireName() const { return wName; }

est ce que l'objet est modifié ?
est ce que la valeur retour peut etre une l-value ?
0
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
17 sept. 2004 à 12:36
tout ce que je sais c'est que ca marche comme ca ...
apres le reste :p
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 sept. 2004 à 19:06
oui, enfin ya quand meme des limites, ca t'ennui pas de ne pas comprendre ce que tu ecris?
0
cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
17 sept. 2004 à 20:45
bah ca commencais a me saouler un peu toutes les erreurs differents que j'ai pu avoir ...

d'habitude j'aime pas ne pas comprendre mais comme j'avais besoin que ce petit bout de code marche je suis pres a faire l'impasse dessus :p
0
Rejoignez-nous