cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 Modifié par cptpingu le 5/02/2016 à 22:15
Bonjour.
Tout d'abord, évite les using namespace, c'est bien crado. Voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
Utilise des "const std::string&" en argument au lieu de "std::string" pour éviter une copie inutile.
Utilise des listes d'initialisation dans le constructeur plutôt que d'affecter des variables dans le corps du constructeur. Vu que tu ne fais rien avec ton constructeur, je te l'ai retiré dans ma correction.
Ensuite, tes getters ne devrait pas retourner void (ça n'a pas de sens), mais plutôt le type associé.
Correction:
#ifndef PERSO_H
#define PERSO_H
#include <string>
class Perso
{
public:
void setName(const std::string& name);
void setWeapon(const std::string& weaponname, int weapondamages);
void setLife(int life);
bool isAlive() const;
int getLife() const;
std::string getWeaponName() const;
std::string getName() const;
int getWeaponDamages() const;
private:
std::string m_name;
std::string m_weaponname;
int m_life;
int m_weapondamages;
};
#endif // PERSO_H
#include <iostream>
#include "Perso.hh"
int main()
{
Perso perso;
std::cout << "RPG CONSOLE" << std::endl;
perso.setName("Rafael");
perso.setLife(100);
perso.setWeapon("M16", 20);
std::cout << perso.getName() << " has " << perso.getLife()
<< " life points and he has a "
<< perso.getWeaponName() << std::endl;
return 0;
}
Je te l'ai corrigé techniquement. Mais conceptuellement, ce n'est pas terrible. Les dégats de l'arme devrait être dans un objet arme possédé par le joueur, plutôt que ce soit le joueur qui possède les dégâts de l'arme.
Weshguy
Messages postés3Date d'inscriptionvendredi 5 février 2016StatutMembreDernière intervention22 février 2016 5 févr. 2016 à 18:37
Merci pour ta réponse rapide et pertinente,
Maintenant la compilation marche ;)
Mais je tient à préciser que le "sa" est du au fait que j'ai changé de clavier QWERTZ a QWERTY (que je trouve beaucoup mieux d'ailleurs) et que je ne trouve pas le Ccedille sur mon clavier :).