[?] template...

Le
Valdo Tschantre
Je voudrais ecrire des choses comme ceci :


template <class TT>
class TemplateClass : public TT {

//

};


Es-ce possible ? Et si oui, quelles precautions prendre (aussi bien
dans la definition du template, que dans la classes qu'il prendrait en
param.) ?

Pour l'heure, je rencontre des *problemes d'acces memoire au
run-time* (ie. la compilation et l'edition de liens sont OK.)

Merci,
Valdo.


--
valdo_tschantre@ifrance-NOSPAM.com
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alexandre
Le #736212
"Valdo Tschantre" message de news:4076c49c$0$1941$
Je voudrais ecrire des choses comme ceci :


template <class TT>
class TemplateClass : public TT {

// ...

};


Je ne comprends pas trop... Tu veux une classe qui accepte un paramètre de
type (TT) mais qui hérite de ce paramètre (alors qu'il peut être n'importe
quoi, int par exemple) ??? Quel intéret ?

Loïc Joly
Le #720016
Alexandre wrote:

"Valdo Tschantre" message de news:4076c49c$0$1941$

Je voudrais ecrire des choses comme ceci :


template <class TT>
class TemplateClass : public TT {

// ...

};



Ce code est correct.

Je ne comprends pas trop... Tu veux une classe qui accepte un paramètre de
type (TT) mais qui hérite de ce paramètre (alors qu'il peut être n'importe
quoi, int par exemple) ??? Quel intéret ?


Dès que tu as un template avec un type en argument, tu as un contrat
implicite à supporter. Pour vector, le contrat est que le type soit
copiable avec une sémentique classique. Pour std::sort, le contrat est
que le premier paramètre template soit un random access iterator et le
deuxième définisse une relation "strict weak ordering".

Dans son cas, un des éléments du contrat implicite à remplir est que TT
doit être une classe (prévue pour la dérivation en plus). Il n'y a rien
là d'étrange.

--
Loïc


Publicité
Poster une réponse
Anonyme