Soyez le premier à donner votre avis sur cette source.
Snippet vu 3 812 fois - Téléchargée 37 fois
#include <iostream.h> #include <conio.h> //#include <conio.c> pour devcpp. class Player { private : //Declarations(caracteristiques de chaque objet) char statut[20+1]; int life; int defense; int power; public : Player(char *stat="Samurai", int hp=200, int def=75, int pw=100);//Redefinition du constructeur avec valeurs par defaut. ~Player(); int GetLife();//getter(int paskel renvoie un entier) void SetLife(int hp);//setter void show(); }; //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz Player::Player(char *stat, int hp, int def, int pw) //Constructeur. { strcpy(statut, stat); life= hp; defense= def; power= pw; } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz Player::~Player() { cout<<"\n\nl addresse m\202moire : " << this << " a \202t\202 lib\202r\202e."; getch(); } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz int Player::GetLife()//Fonction Get qui permet l acces a une donnee private de la classe Player par une //main().Sinon impossible! { return life; } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz void Player::SetLife(int hp)//Fonction Set ki permet la modification d une donnee private par //main().Sinon impossible! { if(hp > 0 && hp<1000)//On controle la validité de la variable. { life = hp; } } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz void Player::show()//Fontion pour afficher les objets crees. { cout<<"\n- Statut :" <<statut; cout<<"\n- Defense :" <<defense; cout<<"\n- Puissance :"<<power; } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz int main() { cout<<"Creation d un objet statique\n\n"; Player kyo1; kyo1.show(); cout<<"\n- Life :" <<kyo1.GetLife() << "\t(Utilisation de GetLife() avec l objet kyo1)\n\n"; getch(); cout<<"\n\n\n[ Creation d'un objet dynamique ]\n\n"; Player *kyo2; kyo2 = new Player("Magicien", 500, 100, 200); kyo2->show(); cout<<"\n- Life :" <<kyo2->GetLife() << "\t(Utilisation de GetLife() avec l objet kyo2)\n\n"; getch(); cout<<"\n\nUtilisation de SetLife() sur l objet kyo2\n\n"; kyo2->SetLife(999); kyo2->show(); cout<<"\n- Life :" << kyo2->GetLife() << "\t(La propri\202t\202 Life de l objet kyo2 est modifi\202e)\n\n"; getch(); delete kyo2; return 0; } //zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
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++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.