Template

Template - C++ - Programmation

Marsh Posté le 20-11-2009 à 16:43:24    

Bonjour,
je m'excuse d'avance si ce sujet a déjà été traité, mais je n'ai pas trouvé sur le forum.
 
J'ai tout d'abort crée une classe template qui s'appelle Tab, et qui a cette allure :

Code :
  1. template < typename T >
  2. class Tab{
  3. protected :
  4.   int t ;
  5.   T *v ;
  6. public :
  7. // etc...
  8. }


Puis, j'ai crée une classe qui s'appelle Vec sous la forme :

Code :
  1. class Vec : public Tab <double>
  2. {
  3. //...
  4. }


Cette classe Vec fonctionne sans problemes.
 
Maintenant, je voudrais créer une classe GroupVec comme ceci :

Code :
  1. //dans le .hpp
  2. class GroupVec : public Tab <Vec>
  3. {
  4. ...
  5. }
  6. //dans le .cpp, le constructeur serait
  7.   GroupVec::GroupVec(int a, int b)
  8.     :  Tableau<Vec(a)>(b)
  9.   {
  10.   }


 
Cette méthode ne fonctionne pas... est-il possible de créer un template de template ?

Reply

Marsh Posté le 20-11-2009 à 16:43:24   

Reply

Marsh Posté le 20-11-2009 à 16:54:33    

réponse : oui, sans aucun problème
 
Cette ligne m'a l'air suspicieuse :

Code :
  1. :  Tableau<Vec(a)>(b)


 
poste le code qui te pose problème et l'erreur


---------------
last.fm
Reply

Marsh Posté le 20-11-2009 à 17:12:07    

Merci d'avoir répondu aussi rapidement.
 

theshockwave a écrit :

réponse : oui, sans aucun problème
 
Cette ligne m'a l'air suspicieuse :

Code :
  1. :  Tableau<Vec(a)>(b)


 
poste le code qui te pose problème et l'erreur


Effectivement, je trouve ça bizarre, mais je ne sais pas comment exprimer l'idée que je voudrais qu'un objet de ma classe GroupVec soit un Tab de b objets de la classe Vec qui eux même sont de taille a.

Reply

Marsh Posté le 20-11-2009 à 17:15:29    

d'une part, tu peux prendre exemple sur vector (et donner une instance qui sera recopiée pour chaque élément) et d'autre part, tu peux aussi en arriver à te demander si, pour un tableau à deux dimensions, ta structure sera vraiment adaptée.
 
Pourquoi, par exemple, ne pas avoir fait directement Tab< Tab< double > > ? Tu as un besoin particulier sur le contrôle des lignes (ou colones, c'est selon)


---------------
last.fm
Reply

Marsh Posté le 20-11-2009 à 17:44:24    

D'accord, merci de vos conseils. Je tenterai un tableau.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed