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!
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);
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++
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++