Template et héritage

Signaler
Messages postés
54
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
10 janvier 2006
-
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
-
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

Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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+
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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 ...