Classe en c++

cs_aciid_washor Messages postés 13 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 19 septembre 2008 - 25 juin 2004 à 14:18
cs_aciid_washor Messages postés 13 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 19 septembre 2008 - 25 juin 2004 à 16:38
Bonjour, j'essaye de créé une classe donnee qui comporterait un nom et un numéro
Je déclare donc:
class donnee{
public: char nom;
char numero;
};

Le probleme, c'est que char ne déclare qu'un seul caractère et qu'un nom en comporte habituellement plusieurs. Quand je declare:
char nom[30]
J'ai une erreur lors de la compilation. La question est donc: comment déclarer une chaîne de caractère dans une classe?
Merci d'avance. Tom

8 réponses

Picospicos Messages postés 23 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 8 juillet 2004
25 juin 2004 à 14:22
Salut,

Tu peux essayer de déclarer ta variable avec un pointeur :

char *nom;

et tu l'initialises dans le constructeur.

Je ne sais pas si cet remarque peut t'aider

a+ Picos
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
25 juin 2004 à 14:43
tu peux aussi déclarer des chaines de cette facon dans ta classe !

char nom[30];

quelles sont tes erreurs ?
0
cs_aciid_washor Messages postés 13 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 19 septembre 2008
25 juin 2004 à 15:15
L'erreur que j'obtiens est:

prog.cpp: Dans fuction "int main() " :
prog.cpp:13: error: incompatible types in assignment of `charZ to char[30]

Je programme sous emacs et le compilateur et g++ (linux)
merci.
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
25 juin 2004 à 15:44
montre ton code
0

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

Posez votre question
cs_aciid_washor Messages postés 13 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 19 septembre 2008
25 juin 2004 à 15:52
#include
//essai de classe
class donnee{
public:
char nom;
char numero;
};

main(){
donnee* p= new donnee;
(*p).nom='jean-luc';
(*p).numero='4546';
cout << (*p).nom << "\t" << (*p).numero <<endl;
}

Ne vous étonnez pas de la simplicité de ce code, je suis entrain d'apprendre le c++ et je suis au chapitre sur les classes... Mais je trouve pas ma réponse :-s
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
25 juin 2004 à 16:07
Salut

Entre guillemets simples ('), on ne met qu'un seul caractère.

#include
//essai de classe
class donnee{
public:
char nom[256];
int numero;
};

main(){
donnee* p= new donnee;
strcpy(p->nom, "jean-luc") ;
p->numero=4546;
std::cout << p->nom << "\t" << p->numero <<std::endl;
}

je pense que ca marche.
Si t'as des questions, hésite pas !
Bonne prog.

Chouchou
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
25 juin 2004 à 16:15
je pense que ca marche aussi

sauf que le numéro je pense que c'est une chaine de caractère vu que ca doit etre un numéro de téléphone, donc le meme principe que pour nom, avec le strcpy qui va bien
0
cs_aciid_washor Messages postés 13 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 19 septembre 2008
25 juin 2004 à 16:38
ca marche, merci tout plein :-)
0