Partage
  • Partager sur Facebook
  • Partager sur Twitter

[POO] Problème héritage valeurs SVP !

J'ai besoin d'aide :'(

Sujet résolu
    11 mai 2008 à 21:29:18

    Bonjour à tous, j'ai besoin de votre aide car je travaille sur un projet de jeu (pour l'instant je ne code que la base console que je modifierai plus tard en fenêtre) mais j'ai un grave problème avec l'héritage en POO.
    Pour plus de simplicité, j'ai repris l'exemple du sdz pour faire un schéma simplifié de mon jeu (d'ailleurs c'est très réussi puisqu'on y voit clairement le problème :D ) :

    Active.cpp qui est ici tiré de Personnage.cpp
    #include "Active.h"
    
    using namespace std;
    
    Active::Active() : m_life(100), m_name("Jack")
    {
    
    }
    
    Active::Active(string name) : m_life(100), m_name(name)
    {
    
    }
    
    void Active::recevoirDegats(int degats)
    {
        m_life -= degats;
    }
    
    void Active::attack(Active &target)
    {
        int final_damage = 10;
        target.recevoirDegats(final_damage);
        cout << target.m_name << " loses 10 life points !" << endl;
        Active::show_stats(target);
    }
    
    void Active::show_stats(Active &target)
    {
        cout << target.m_name << " Life : " << target.m_life << endl;
    }
    


    main.cpp
    #include <iostream>
    #include <string>
    #include "Active.h"
    #include "Boss.h"
    #include "Hero.h"
    
    using namespace std;
    
    int main()
    {
        Boss Valter, Klompa;
    
        Valter.attack(Klompa);
        Valter.attack(Klompa);
        Klompa.attack(Valter);
    
    	return 0;
    }
    


    Et Boss.cpp
    #include "Boss.h"
    
    using namespace std;
    
    Boss::Boss() : Active()
    {
    
    }
    
    Boss::Boss(string name) : Active(name)
    {
    
    }
    
    void Boss::frapperCommeUnSourdAvecUnMarteau()
    {
        // A implémenter
    }
    


    Je n'ai pas besoin d'autres fichiers pour exprimer mon problème, mais si vous pensez que cela peut faciliter la compréhension demandez moi :)

    Et ce que ça m'affiche en Console ?
    Jack loses 10 life points !
    Jack Life : 90
    Jack loses 10 life points !
    Jack Life : 80
    Jack loses 10 life points !
    Jack Life : 90
    
    Process returned 0 (0x0)   execution time : 0.018 s
    Press any key to continue.


    Vous comprenez ? On ne vois pas la différence entre "Valter" et "Klompa". En réalité j'ai essayé plusieurs fois de résoudre ce problème mais sans réussite ^^ Je voudrais arriver à faire un truc du genre Boss Valter("Valter", int atk,etc...), Klompa("Klompa", int atk,etc...);

    Merci infiniment d'avance,
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2008 à 21:42:51

      Il te suffit d'appeler le constructeur qui possede un nom :
      Boss Valter("Valter");
      
      • Partager sur Facebook
      • Partager sur Twitter
        11 mai 2008 à 21:45:48

        #include <iostream>
        #include <string>
        #include "Active.h"
        #include "Boss.h"
        #include "Hero.h"
        
        using namespace std;
        
        int main()
        {
            Boss Valter("Valter"), Klompa("Klompa");
        
            Valter.attack(Klompa);
            Valter.attack(Klompa);
            Klompa.attack(Valter);
        
        	return 0;
        }
        


        Non ?
        • Partager sur Facebook
        • Partager sur Twitter
          11 mai 2008 à 21:46:48

          Je dirais que c'est ca. A toi de me dire si ca plante ou pas ^^.
          • Partager sur Facebook
          • Partager sur Twitter

          [POO] Problème héritage valeurs SVP !

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown