Classe en c++

Signaler
Messages postés
13
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2008
-
Messages postés
13
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2008
-
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

Messages postés
23
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
8 juillet 2004

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
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
tu peux aussi déclarer des chaines de cette facon dans ta classe !

char nom[30];

quelles sont tes erreurs ?
Messages postés
13
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2008

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.
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
montre ton code
Messages postés
13
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2008

#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
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

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
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
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
Messages postés
13
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
19 septembre 2008

ca marche, merci tout plein :-)