Une Class et des Char ... [Résolu]

Signaler
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
-
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
-
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

Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
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
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
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 ...
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

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.
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Ta fonction LireName renvoi un char alors que la variable retourner est un tableau.
Déclares plutot ta fonction avec char* LireName (....).

Shell
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
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 ...

...
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
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
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Vire le const après LireName il ne sert a rien.
Ensuite ca devrais marher.

Shell
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
ca marche paaaaaaaaaaaaaaas (snif)

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

c un peu saoulant ...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
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 ?
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
tout ce que je sais c'est que ca marche comme ca ...
apres le reste :p
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui, enfin ya quand meme des limites, ca t'ennui pas de ne pas comprendre ce que tu ecris?
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
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