Problème d'héritage, constructeur par defaut

Creuilcreuil Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -  
Creuilcreuil Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis suis en train de cree des class de base , et j'ai un problem d'heritage
avec le constructeur par defaut.

j'ai 3 class Entite, Perso, Monstre.

je peux acceder a un attribue de 'Entie' depuis Perso et le modifiée
mais depuis 'Monstre' je peux pas accéder a un attribue de 'Perso' ni de 'Entite'

Merci de m'avoir lue.

In constuctor Monstre::Monstre()':
errore: class 'Monstre' does no have any fileds named 'm_equipe'
errore: class 'Monstre' does no have any fileds named 'm_nom'



//'.H'-------------------------
class Entite
{
        public:
        Entite();
        ~Entite();
        std::string definirNom(std::string c_nom);
        
        protected:
        m_nom;
}

//'.CPP'---------------------------
Entite::Entite() : m_name("MISSINGNO")

Entite::definirNom(std::string c_nom)
{
m_nom=c_nom
}

//'.H'------------------------------
class Perso : public Entite
{
      public:
      Perso();
      ~Perso();
      std::string definirEquipe(std::string c_equipe)

      protected:
      std::string m_equipe;
}

//'.CPP'----------------------------
Perso::Perso :  m_team("Joueur")

Entite::definirEquipe(std::string c_equipe)
{
m_equipe=c_equipe
}

//'.H'-------------------------------
class Monstre : public Perso
{     
       public:
       Monstre()
       ~Monstre()
}

//'.CPP'------------------------

Monstre::Monstre : m_equipe("Monstre"), m_nom("Garou")

1 réponse

yougy2 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   128
 
Salut, tu veux dire que avec une fonction de Monstre tu ne peux pas récupérer les valeurs des variables membres d'autres fonctions ? c'est bien ca ?

Si c'est ça, c'est totalement normal, tes variables membres sont déclarées en protected, donc elles ne sont pas modifiables par une autre classe. a moins de créer une fonction dans la classe que tu veux qui va récupérer la valeur et une qui va la modifier. c'est un principe de la POO.

Si jamais ce n'était pas ta question, précises un peu ton problème
0
Creuilcreuil Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   2
 
Non , c'est presque ça , en fait je veut modifier le constructeur par défaut de Monstre,
Pour pouvoir modifier l'équipe et qu'elle ne soit pas la même que pour les objet 'Perso'

modifier 'm_nom' de 'Entite' depuis le constructeur de 'Perso' fonctionne.

mais modifier 'm_equipe' de Perso ou 'm_nom' de 'Entie' depuis le constructeur de 'Monstre' ne fonctionne pas.

class Mère> Entite::Entie() : m_nom("missing")

class fille de 'Entite'/class Mère de 'Monstre'> Perso::Perso (): m_nom("Joe"),m_equipe("Joueur")

class fille de 'Perso'> Monstre::Monstre : m_equipe("Monstre").

Merci quand même.
0
yougy2 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention   128
 
Ah d'accord, déja, je crois voir une erreur à la ligne 40, tu as utilise la variable membre m_team alors que tu as déclaré m_equipe.
0
Creuilcreuil Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   2 > yougy2 Messages postés 445 Date d'inscription   Statut Membre Dernière intervention  
 
non, enfait j'ai re-traduit mon code pour comment ça marche je l'ai clarifie je me suis tromper dnas la traduction c'est tout, il y a bien plus qu'un objet dans mes class
0