Bug : Constructeur
Résolu/Fermé
TheYoungGeek43
Messages postés
88
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
1 avril 2017
-
Modifié par TheYoungGeek43 le 12/02/2015 à 13:24
TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017 - 13 févr. 2015 à 09:59
TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017 - 13 févr. 2015 à 09:59
A voir également:
- Bug : Constructeur
- Bug yahoo mail - Accueil - Mail
- Iptv bug forum ✓ - Forum TV & Vidéo
- Bug chatgpt - Accueil - Intelligence artificielle
- Bug localisation snap ✓ - Forum Snapchat
- Bug yahoo mail 27 fevrier 2024 ✓ - Forum Yahoo mail
2 réponses
Utilisateur anonyme
12 févr. 2015 à 23:19
12 févr. 2015 à 23:19
Tu es sur la voie.
pour que ça marche il te faut un truc comme ça:
Personnage::Personnage(string nomArme, int degatsArme) { //à cet instant monArme est un string et degatsArme est un int, hé oui m_vie = 100; m_mana = 100; m_arme = nomArme;//là je ne connais pas le type de m_arme mais tu essayes d'y allouer un string; m_arme = degatsArme;//là m_arme n'a pas changé de type et tu essaye d'y allouer un int, forcément une ligne au moins ne marche pas (et peut être les deux). Et de plus c'est inutile, tu demandes 2 paramètres et tu en écrases un par l'autre. }
pour que ça marche il te faut un truc comme ça:
Personnage::Personnage(string nomArme, int degatsArme) { m_vie = 100; m_mana = 100; m_monArme = nomArme;//de type string m_degatsArme = degatsArme;//de type int }
TheYoungGeek43
Messages postés
88
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
1 avril 2017
12 févr. 2015 à 23:45
12 févr. 2015 à 23:45
désoler j'ai du mal m'exprimer donc on sait pas bien compris :s car moi je suis en train d'apprendre avec le livre du site du zero dans le cours le constructeur ressemble à ça
Sauf que moi je trouve cette façon de faire des moche donc je voulais le faire de la façon que j'ai essayer mais que ça me bloque
Personnage::Personnage(string nomArme, int degatsArme) : m_vie(100), m_mana(100), m_arme(nomArme, degatsArme) { }
Sauf que moi je trouve cette façon de faire des moche donc je voulais le faire de la façon que j'ai essayer mais que ça me bloque
TheYoungGeek43
Messages postés
88
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
1 avril 2017
Modifié par TheYoungGeek43 le 13/02/2015 à 09:44
Modifié par TheYoungGeek43 le 13/02/2015 à 09:44
Bonjour,
Mais pourtant je l'ai déjà fait dans le .h
Personnage.h
Personnage .cpp
Esque tu à besoin du code de la class Arme?
Mais pourtant je l'ai déjà fait dans le .h
Personnage.h
#ifndef DEF_PERSONNAGE #define DEF_PERSONNAGE #include <string> #include "Arme.h" class Personnage { public: Personnage(std::string nomArme, int degatsArme); // Constructeur Personnage::Personnage(); Personnage::Personnage(int vie, int mana); void recevoirDegats(int nbDegats); void attaquer(Personnage &cible); void boirePotionDeVie(int quantitePotion); void changerArme(string nomNouvelleArme, int degatsNouvelleArme); bool estVivant() const; ~Personnage(); private: int m_vie; int m_mana; Arme m_arme; // J'avait deja mis se que tu ma dit de mettre XD }; #endif // !DEF_PERSONNAGE
Personnage .cpp
#include <string> #include <iostream> #include "Personnage.h" using namespace std; Personnage::Personnage() { m_vie = 100; m_mana = 100; } Personnage::Personnage(string nomArme, int degatsArme) { m_vie = 100; m_mana = 100; m_arme = nomArme; m_arme = degatsArme; } Personnage::Personnage(int vie, int mana) { m_vie = 100; m_mana = 100; } void Personnage::recevoirDegats(int nbDegats) { m_vie -= nbDegats; if (m_vie < 0) { m_vie = 0; } } void Personnage::attaquer(Personnage &cible) { /*cible.recevoirDegats(m_degatArme);*/ } void Personnage::boirePotionDeVie(int quantitePotion) { m_vie += quantitePotion; if (m_vie > 100) { m_vie = 100; } } void Personnage::changerArme(string nomNouvelleArme, int degatsNouvelleArme) { /* = nomNouvelleArme;*/ /*m_arme = degatsNouvelleArme;*/ } bool Personnage::estVivant() const { if (m_vie > 0) { return true; } else { return false; } } Personnage::~Personnage() { }
Esque tu à besoin du code de la class Arme?
Hum tellement l'habitude de la façon dynamique que j'ais dit une bêtise.
L'appel d'un constructeur d'un sous-objet c'est forcément par la méthode "moche" si on utilise pas de pointeur.
Tu peux très bien faire:
C'est toujours mieux que faire des mixtes.
PS:Mets toutes les sources nécessaires à la compréhension on ne peut pas deviner tes classes.
L'appel d'un constructeur d'un sous-objet c'est forcément par la méthode "moche" si on utilise pas de pointeur.
Personnage::Personnage(string nomArme, int degatsArme): m_arme(nomArme, degatsArme) { m_vie=100; m_mana=100; }
Tu peux très bien faire:
Personnage::Personnage(string nomArme, int degatsArme) : m_vie(100), m_mana(100), m_arme(nomArme,degatsArme) { }
C'est toujours mieux que faire des mixtes.
PS:Mets toutes les sources nécessaires à la compréhension on ne peut pas deviner tes classes.
TheYoungGeek43
Messages postés
88
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
1 avril 2017
13 févr. 2015 à 09:59
13 févr. 2015 à 09:59
Merci de tes réponse je vais faire comme ça maintenant ;)
12 févr. 2015 à 20:07
Aller je t'aide.
Il y a ce jeux de bébé, ou tu dois faire passer des formes dans des trous correspondants.
Tu vois le trou rond et y passe avec succès un cylindre, ensuite dans ce même trou, tu essayes le cube et là ça ne marche plus, pourquoi?
12 févr. 2015 à 22:53
Oups, on parle pas de physique quantique ici, mauvais topic ;-)
12 févr. 2015 à 22:49
Si j'ai compris ton truc sa veut dire que j'aurais du mettre