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

Fermé
Creuilcreuil Messages postés 44 Date d'inscription jeudi 1 janvier 2015 Statut Membre Dernière intervention 7 septembre 2015 - Modifié par crapoulou le 1/01/2015 à 19:19
Creuilcreuil Messages postés 44 Date d'inscription jeudi 1 janvier 2015 Statut Membre Dernière intervention 7 septembre 2015 - 2 janv. 2015 à 19:20
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 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 126
Modifié par yougy2 le 1/01/2015 à 19:36
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 jeudi 1 janvier 2015 Statut Membre Dernière intervention 7 septembre 2015 2
1 janv. 2015 à 20:22
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 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016 126
2 janv. 2015 à 12:44
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 jeudi 1 janvier 2015 Statut Membre Dernière intervention 7 septembre 2015 2 > yougy2 Messages postés 444 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 11 avril 2016
Modifié par Creuilcreuil le 2/01/2015 à 19:21
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