CLASSE, CONSTRUCTEURS, OBJETS[DEVCPP][TC][CBUILDER]

trinitacs
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
- 29 nov. 2002 à 16:47
cs_Zebigbos
Messages postés
10
Date d'inscription
lundi 9 décembre 2002
Statut
Membre
Dernière intervention
20 décembre 2002
- 18 déc. 2002 à 18:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10139-classe-constructeurs-objets-devcpp-tc-cbuilder

cs_Zebigbos
Messages postés
10
Date d'inscription
lundi 9 décembre 2002
Statut
Membre
Dernière intervention
20 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és
2
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Derniè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és
71
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
20 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és
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
2
29 nov. 2002 à 22:16
Non quand même pas pour l'héritage, mais fonctions get et set oui.
OnimeKyo
Messages postés
2
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Derniè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++
Afficher les 6 commentaires