membre static partagé par plusieurs templates (enregistrement de classes)
2 réponses
Okerampa
Bonjour. J'ai un peu fouill=E9 dans les archives, mais je n'ai rien
trouv=E9 de semblable (peut =EAtre que j'ai mal cherch=E9...)
si je fais :
template <class T>
Classe
{
static int i;
}
et que je cr=E9=E9e plusieurs classes Classe<int> Classe<Classe2> etc.
j'aurai un membre static diff=E9rent pour chacune des classes. C'est ce
que je souhaite, car il me faut un identifiant pour chacune de mes
classes...
Cependant, j'aimerais aussi avoir un membre static commun =E0 toutes mes
classes, pour par exemple enregistrer un manager.
En gros, je voudrais pouvoir appeler quelque chose comme :
Classe::setControl(xxx) { static
commun_a_toutes_mes_classes_de_template =3D xxx; }, pour une
initialisation.
Dans les moyens d=E9tourn=E9s d'y arriver, je ne vois qu'un singleton avec
mon xxx auquel je pourrais acc=E9der depuis un constructeur de
Classe<yyy> (donc j'y acc=E8derais autant de fois que j'ai de classes =E0
enregistrer), mais j'aimerais autant =E9viter ce genre de choses...
Bref je cherche surtout un moyen de faire de l'enregistrement de
classes automatique.
Voil=E0, si quelqu'un a d=E9j=E0 rencontr=E9 ce probl=E8me ou a une solutio=
n
qu'il aime bien...
Merci pour tout commentaire ;)
Okerampa, qui aime pas trop les bouts de colle mais bon...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
Okerampa writes:
Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien trouvé de semblable (peut être que j'ai mal cherché...)
si je fais : template <class T> Classe { static int i; }
et que je créée plusieurs classes Classe<int> Classe<Classe2> etc. j'aurai un membre static différent pour chacune des classes. C'est ce que je souhaite, car il me faut un identifiant pour chacune de mes classes...
Cependant, j'aimerais aussi avoir un membre static commun à toutes mes classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune { protected: static int counter; };
template <typename T> class Classe: private Base_Commune { private: static int id; };
...
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Okerampa <okerampa@gmail.com> writes:
Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien
trouvé de semblable (peut être que j'ai mal cherché...)
si je fais :
template <class T>
Classe
{
static int i;
}
et que je créée plusieurs classes Classe<int> Classe<Classe2> etc.
j'aurai un membre static différent pour chacune des classes. C'est ce
que je souhaite, car il me faut un identifiant pour chacune de mes
classes...
Cependant, j'aimerais aussi avoir un membre static commun à toutes mes
classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune
{
protected:
static int counter;
};
template <typename T>
class Classe: private Base_Commune
{
private:
static int id;
};
...
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien trouvé de semblable (peut être que j'ai mal cherché...)
si je fais : template <class T> Classe { static int i; }
et que je créée plusieurs classes Classe<int> Classe<Classe2> etc. j'aurai un membre static différent pour chacune des classes. C'est ce que je souhaite, car il me faut un identifiant pour chacune de mes classes...
Cependant, j'aimerais aussi avoir un membre static commun à toutes mes classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune { protected: static int counter; };
template <typename T> class Classe: private Base_Commune { private: static int id; };
...
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Okerampa
On 28 nov, 18:43, Jean-Marc Bourguet wrote:
Okerampa writes: > Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien > trouvé de semblable (peut être que j'ai mal cherché...)
> si je fais : > template <class T> > Classe > { > static int i; > }
> et que je créée plusieurs classes Classe<int> Classe<Classe2> etc. > j'aurai un membre static différent pour chacune des classes. C'est ce > que je souhaite, car il me faut un identifiant pour chacune de mes > classes...
> Cependant, j'aimerais aussi avoir un membre static commun à toutes me s > classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune { protected: static int counter;
};
template <typename T> class Classe: private Base_Commune { private: static int id;
};
Oui. Très sottement je m'étais dit que ça ne ferait que déplacer le problème alors qu'en fait ça le résout :p (vu que la variable restera bien unique et partagée par toutes les classes dérivées quelles qu'elles soient).
Merci !
On 28 nov, 18:43, Jean-Marc Bourguet <j...@bourguet.org> wrote:
Okerampa <okera...@gmail.com> writes:
> Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien
> trouvé de semblable (peut être que j'ai mal cherché...)
> si je fais :
> template <class T>
> Classe
> {
> static int i;
> }
> et que je créée plusieurs classes Classe<int> Classe<Classe2> etc.
> j'aurai un membre static différent pour chacune des classes. C'est ce
> que je souhaite, car il me faut un identifiant pour chacune de mes
> classes...
> Cependant, j'aimerais aussi avoir un membre static commun à toutes me s
> classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune
{
protected:
static int counter;
};
template <typename T>
class Classe: private Base_Commune
{
private:
static int id;
};
Oui. Très sottement je m'étais dit que ça ne ferait que déplacer le
problème alors qu'en fait ça le résout :p (vu que la variable restera
bien unique et partagée par toutes les classes dérivées quelles
qu'elles soient).
Okerampa writes: > Bonjour. J'ai un peu fouillé dans les archives, mais je n'ai rien > trouvé de semblable (peut être que j'ai mal cherché...)
> si je fais : > template <class T> > Classe > { > static int i; > }
> et que je créée plusieurs classes Classe<int> Classe<Classe2> etc. > j'aurai un membre static différent pour chacune des classes. C'est ce > que je souhaite, car il me faut un identifiant pour chacune de mes > classes...
> Cependant, j'aimerais aussi avoir un membre static commun à toutes me s > classes, pour par exemple enregistrer un manager.
Si j'ai bien compris:
class Base_Commune { protected: static int counter;
};
template <typename T> class Classe: private Base_Commune { private: static int id;
};
Oui. Très sottement je m'étais dit que ça ne ferait que déplacer le problème alors qu'en fait ça le résout :p (vu que la variable restera bien unique et partagée par toutes les classes dérivées quelles qu'elles soient).