C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Template et héritage

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Hugues CASSE
Guest





PostPosted: Thu Sep 09, 2004 7:19 am    Post subject: Template et héritage Reply with quote



J'aimerai avoir votre avis sur la construction suivante.
Y a-t-il des compilateurs qui l'acceptent?

On a une classe template:
template <class T> C {
void f(void) { traitement 1 };
...
};

Une autre classe A :
class A { ... };
Qui nous permet de spécialiser la fonction F de la classe C:
template <> void C<A *>::f(void) { traitement 2 };

Enfin une classe B héritant de A:
class B: public A { ... };

Mon problème est le suivant, je voudrai que la ligne suivante
effectue le "traitement 2":
C<B> o;
o.f();

Merci d'avance, HugBert.
Back to top
Marc Boyer
Guest





PostPosted: Thu Sep 09, 2004 9:30 am    Post subject: Re: Template et héritage Reply with quote



In article <chp05e$rmh$1 (AT) news (DOT) cict.fr>, Hugues CASSE wrote:
Quote:
J'aimerai avoir votre avis sur la construction suivante.
[SNIP Héritage et Template]


Globalement, tu essayes de faire par spécialisation
des templates ce qui se serait fait simplement avec
un dynamic_cast, non ?

En attendant que quelqu'un de plus compétent que moi
prenne le temps de te répondre, je t'invite à consulter
"Modern C++ Design", qui parle de ce genre de choses.

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...

Back to top
Arnaud Debaene
Guest





PostPosted: Thu Sep 09, 2004 5:21 pm    Post subject: Re: Template et héritage Reply with quote



Hugues CASSE wrote:
Quote:
J'aimerai avoir votre avis sur la construction suivante.
Y a-t-il des compilateurs qui l'acceptent?

On a une classe template:
template <class T> C {
void f(void) { traitement 1 };
...
};

Une autre classe A :
class A { ... };
Qui nous permet de spécialiser la fonction F de la classe C:
template <> void C<A *>::f(void) { traitement 2 };

Enfin une classe B héritant de A:
class B: public A { ... };

Mon problème est le suivant, je voudrai que la ligne suivante
effectue le "traitement 2":
C<B> o;
o.f();

Il y a une différence d'indirection entre C<A*> et C<B>. S'est volontaire ou
bien s'est une faute de frappe?

Arnaud



Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.