Bonjour a tous,
j ai un petit souci d acces avec l heritage et les interfaces. Je dispose de 2 classes abstraites, l une heritant de l autre :
Voila donc ce sont 2 classes abstraites. Je doit donc , pour ouvoir implementer ces interfaces, les faire heriter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class IObject { public : virtual string ToString() const = 0; virtual string GetType() const = 0; } class IOperand : public IObject { public: virtual IObject* Add(const IOperand &object) = 0; virtual IObject* Subtract(const IOperand &object) = 0; }
Donc je pense proceder ainsi :
Donc je dois definir le code de toutes les fonctions des interfaces puisque ce sont des methodes pures. Je vais creer plusieurs classes differentes qui heriteront de IOperand.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class myclass : public IOperand { // bla bla }
Mon souci reside dans le stockage heterogene de ces classes. Je dois creer un conteneur de type IObject ( puisque les fonctions renvoie des IObject) mais comment faire pour appeler les methodes add et substract si je suis avec un type IObject. Je ne peux pas caster le IObject en IOperand !!!!! .
Avez vous une solution ou une piste pour mes recherches.
Merci d avance pour vos reponses.![]()
Partager