cs_Zebigbos
Messages postés10Date d'inscriptionlundi 9 décembre 2002StatutMembreDernière intervention20 décembre 2002 18 déc. 2002 à 18:48
Slt!!
G une question un peu indiscrete, tu compte faire quoi avec ce code?
L'incorporer à un jeu?
Tout seul, il sert un peu à rien...
Simple curiosité, enfin il presente plus d'interet que certains "hello world!" à la con.
>>merci pour le 20+1, mickbad, je connaissais pas!
Bonne prog les gars!
OnimeKyo
Messages postés2Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention 3 décembre 2002 3 déc. 2002 à 18:31
Bonne idee,je ne connaissait pa etant donné ke je suis encor un pe novice,merci pr l info en tt cas!Ca me sera vraiment utile!
Vive le bts info!!!!
mickbad
Messages postés71Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention20 avril 2008 3 déc. 2002 à 11:12
Salut, c'est bien mais il y a un truc qui me gène un peu:
* Player::Player(char *stat, int hp, int def, int pw) //Constructeur.
* {
* strcpy(statut, stat);
si je fais
Player* p = new Player("0123456789012345678901-et je dépasse la zone !");
ça plante (tu risques d'écrire dans un emplacement non alloué)
why ? ben "0123456789012345678901-et je dépasse la zone !" > 20 + 1 caractères
2 solutions:
- dans ton constructeur, utilise plutôt : strncpy(statut, stats, 20);
- remplace char statut[20+1] par char* statut; et ton constructeur devient
statut = (char*)calloc(strlen(stats) + 1, sizeof(char));
if (statut)
strcpy(statut, stats);
et dans ton destructeur, faut pas oublier de libérer statut avec
if (statut)
free(statut);
enfin juste dans l'idée ...
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 29 nov. 2002 à 22:16
Non quand même pas pour l'héritage, mais fonctions get et set oui.
OnimeKyo
Messages postés2Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention 3 décembre 2002 29 nov. 2002 à 19:08
Il est vrai que string.h ne sert a rien,dsl.Et kit a definir un constr et un destr autan mettre un exemple de getter/setter,et d heritage,tt ca.
Je reposterai une autre source plu complete sur les classes...bientot.
A++
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 29 nov. 2002 à 16:47
Tu devrais mettre les données en private. Par ce que tu utilise ta classe comme une struct. Or une classe permet de faire l'encapsulation de données donc autant en profiter.
Ce serait bien de mettre un destructeur.
18 déc. 2002 à 18:48
G une question un peu indiscrete, tu compte faire quoi avec ce code?
L'incorporer à un jeu?
Tout seul, il sert un peu à rien...
Simple curiosité, enfin il presente plus d'interet que certains "hello world!" à la con.
>>merci pour le 20+1, mickbad, je connaissais pas!
Bonne prog les gars!
3 déc. 2002 à 18:31
Vive le bts info!!!!
3 déc. 2002 à 11:12
* Player::Player(char *stat, int hp, int def, int pw) //Constructeur.
* {
* strcpy(statut, stat);
si je fais
Player* p = new Player("0123456789012345678901-et je dépasse la zone !");
ça plante (tu risques d'écrire dans un emplacement non alloué)
why ? ben "0123456789012345678901-et je dépasse la zone !" > 20 + 1 caractères
2 solutions:
- dans ton constructeur, utilise plutôt : strncpy(statut, stats, 20);
- remplace char statut[20+1] par char* statut; et ton constructeur devient
statut = (char*)calloc(strlen(stats) + 1, sizeof(char));
if (statut)
strcpy(statut, stats);
et dans ton destructeur, faut pas oublier de libérer statut avec
if (statut)
free(statut);
enfin juste dans l'idée ...
29 nov. 2002 à 22:16
29 nov. 2002 à 19:08
Je reposterai une autre source plu complete sur les classes...bientot.
A++
29 nov. 2002 à 16:47
Ce serait bien de mettre un destructeur.
Pourquoi string.h ? C'est inutil.