Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2774 connectés 

  FORUM HardWare.fr
  Programmation

  Templates ... mais qu'est ce que c'est donc que ça ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Templates ... mais qu'est ce que c'est donc que ça ?

n°46589
El_gringo
Posté le 13-07-2001 à 11:55:54  profilanswer
 

J'en ai marre d'entendre toujours parler de Templates et de pas savoir ce que c !
c vrai quoi, ça à l'aire d'être à la mode... j'vais finir par paraitre ringuard si j'm'y met pas :D.
 
Je commence à me démerder en C++, mais les templates me sont complètement étrangères...
c très utilisé en fait ?
c quoi ? qqn pourrais m'expliquer ?
c essentiel (ou pratique) comment truc ? parce que j'écrit mes progs sans ça...avec l'api et les mfc de tps en tps, tout vas bien !

 

[edtdd]--Message édité par El_gringo--[/edtdd]

mood
Publicité
Posté le 13-07-2001 à 11:55:54  profilanswer
 

n°46628
El_gringo
Posté le 13-07-2001 à 13:55:25  profilanswer
 

bah !? personne connais ça ou quoi !?

n°46629
Alload
Posté le 13-07-2001 à 13:57:38  profilanswer
 

Moi aussi ça m'intéresse les explications.
:)

n°46631
SoWhatIn22
Posté le 13-07-2001 à 14:01:04  profilanswer
 

un template est une classe générique.
 
par exemple, tu définis une classe template Queue< type_t t>
et des méthodes pour cette classe.
 
Ensuite, tu peux instancier des objets de type Queue<int>, Queue<float> etc... pour peu que les types en question disposent des operateurs appelés dans les fonctions de la classe Queue.
 
par ex, quand tu defini la méthode Somme de cette classe, tu va retourner une valeur arg1+arg2. Ce qui veut dire que arg1 et arg2 doivent être d'un type qui défini l'operateur +.
 
Menfin c long a expliquer.
Le plus bel exemple de template: regarde dans la STL (Standard Template Library).

n°46632
El_gringo
Posté le 13-07-2001 à 14:01:17  profilanswer
 

en plus tu les utilises sans le savoir j'crois.
Je voudrais pas dire des conneries, mais y me semble que string c lié aux templates
A propos, tu ferai mieux d'utiliser les CString, c tout simple à gérer !

n°46634
BENB
100% Lux.
Posté le 13-07-2001 à 14:04:36  profilanswer
 

ce sont des classes ou des fonctions generiques...
imagine que tu puisse definir une fonction ou une classe avec un type variable :
 
template <class T>
T& max(T &a, T &b)
{
   return a>b ? a : b
}
 
ici class est purement formel, il indique que T est un type.
T va etre substitue par le type effectif definit lors de l'appel
Cette fonction marche pour tout les types qui definissent les operateurs > et =, attention s'il n'ont pas leur signification habituels pour une de tes classes...
 
Fin de la lecon 1.
 
Grillee ;)

 

[edtdd]--Message édité par BENB--[/edtdd]

n°46646
El_gringo
Posté le 13-07-2001 à 14:29:20  profilanswer
 

mais du coup dans ces trucs là on peux faire que des choses assez simples, seulement avec des opérateurs puisque c la seule choses qui ne dépend pas du type des données...
c relativement rare en fait, non !?

n°46653
BENB
100% Lux.
Posté le 13-07-2001 à 14:43:33  profilanswer
 

El_gringo a écrit a écrit :

mais du coup dans ces trucs là on peux faire que des choses assez simples, seulement avec des opérateurs puisque c la seule choses qui ne dépend pas du type des données...
c relativement rare en fait, non !?  




Non tu peu faire :
 
template<class T>
void titi(T &a)
{
   a.foo();
}
 
mais si tu appel cette fct sur une classe qui n'a pas de methode foo... tu aurra une erreur...
 
en fait les templates doivent etre dans des .h, et ils sont instancies soit explicitement soit quand le compilo trouve un appel, il instancie la bonne fct.
 
Lors de l'instanciation il "compile" en fait la fonction avec le type utilise...
 
Les templates peuvent etre des alternatives aux heritages, et en plus il n'y a pas de degradation de perf normalement...
 
je m'explique si deux classes ont une methode foo elles peuvent etre appliques a la methode titi ci dessus, sinon il aurrait fallu deux methodes identiques , ou que ces deux classes derivent d'un classe commune definissant la methode foo.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Templates ... mais qu'est ce que c'est donc que ça ?

 

Sujets relatifs
[C++] on peut faire ça avec les templates ????????[C++] Templates et friends ??? HELP!!
visual c++ et templates. pb de link... 
Plus de sujets relatifs à : Templates ... mais qu'est ce que c'est donc que ça ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)