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...
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.
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 ...
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