Bonjour a tous une nouvelle fois et toujours autant de questions...
J'ai essayé de trouver des réponses dans la FAQ mais je n'arrive pas a poser un nom sur mon problème.
J'ai une classe mère que nous appelerons :
Et 3 classes dérivées CCompCombat, CCompMagie, CCompSocial comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class CCompetence { public : CCompetence(); private: CDescription m_description; //contient un nom et une description en char* long val; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class CCompCombat:public CCompetence { ... };
Et une dernière classe CPersonnage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class CPersonnage { public: CPersonnage(); mInitDataCompetence(); private CCompetence *m_competence; };
Voila mon problème à la création d'un personnage, j'alloue un certains nombres de compétences dont la quantité est définit (par exemple) dans un fichier texte qui est lu.
ensuite je fait appel a la méthode d'initialisation des compétences mInitDataCompetence qui finit de lire ce fichier et spécifie pour chaque objet CCompetence quelle est son type (Combat, Magie, Sociale). Or je ne peux pas transformer le m_competence[i] en une classe CCompMagie puisque celle-ci est du type CCompetence...
Je ne veux pas mettre dans ma classe personnage trois composition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CCompCombat *m_comp_combat; CCompMagie *m_comp_magie; CCompSocial *m_comp_social;
Est ce que j'ai loupé un truc dans ma conception ou bien y'a t-il un principe dont je n'ai pas/plus connaissance (et j'ai plus trop de connaissances sur le sujet donc je me reforme sur un petit projet sympa...). J'ai pensé regardé du coté des fonctions virtuels mais ca ne m'arrange en rien
Je crois que mon problème vient du fait que mes héritages ne sont pas forcément bon... ?
Partager