Template et héritage

cybermax62 Messages postés 54 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 10 janvier 2006 - 28 avril 2005 à 15:17
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 - 2 mai 2005 à 15:54
j'ai un problème de fond dans ma conception.

Je voudrais utiliser une classe template de base Singleton avec des
classes héritées (plusieurs fois). Le problème est que je n'arrive pas
à prolonger les membres de ma classe de base à cause du template.



A l'origine j'ai (simplifié):

Class A{} //abstraite

Class B:public A {} //abstaite

Class C:public B {} //concrete

Class D: public B //abstraite

Class E: public D //concrete

et je veux mettre une classe singleton avant ou dans la classe A.



j'ai pensé au début faire une héritage classique mais si je veux créer/détruire mes instances je dois avoir les types.

J'ai ensuite pensé (avec l'aide d'une site...) à une classe template
pour ma classe de base. Si je n'ai qu'une génération ca va. Dans mon
cas, ca ne marche pas car si je définis la classe A de la forme template <typename T> Class A et la classe B du type Class B: public A , alors j'ai des problèmes pour mes classes D,E,...



je ne vois pas quoi faire à ce moment, merci de vos conseils ...

2 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
2 mai 2005 à 15:52
salut,

j'ai l'impression que tu as mal exprimé ton problème, parce que moi je vois pas exactement ce que tu veux faire ...

Dans ce que je comprends, c'est que tu ne devrais pas faire hériter A à des classes qui vont elles aussi etre dérivées.

tu devrais plutot avoir un truc du genre:

template <class T> class singleton; // A la place de ta classe A


Class A{} //abstraite, sert d'interface ou de modele

Class B:public A {} //abstaite

Class C:public B, public singleton<C> {} //concrete

Class D: public B //abstraite

Class E: public D, public singleton<E> //concrete




a+
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
2 mai 2005 à 15:54
dans ce que tu voulais faire ton probleme est lié au fait que deux
instances de deux classes qui sont dérivées d'une meme classe de base
qui doit etre un singleton, peuvent etre vues comme deux fois cette
classe de base, d'ou le fait que comme ta partie base ne peux pas
exister en double, il y a un probleme.

voila ...
0
Rejoignez-nous