Salut tous,
J'essayais de développer sur un exemple de code que j'ai trouvé sur un livre de cours, il s'agit de templates (patrons) et classes, bref, ce que j'essaye de faire, c'est de créer un template d'une classe tableau :
Donc voilà pour le code du template, maintenant, je rajoute une classe point :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 template <class T, int n> class tableau { T t[n]; public: tableau(); T & operator [](int); }; template <class T, int n> tableau<T,n> :: tableau() { cout<<"constructeur"<<endl; } template <class T, int n> T & tableau<T,n> :: operator [](int indice){return t[indice];}
Tout est prêt, il suffit de tester !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class point { int x, y ; public : point (int abs=1, int ord=1 ) // ici init par défaut à 1 { x=abs ; y=ord ; cout << "constr point " << x << " " << y << "\n" ; } void affiche () { cout << "Coordonnees : " << x << " " << y << "\n" ; } } ;
Mon problème est qu'il y a un conflit entre la déclaration de la variable tab (faite à partir du template tableau, et qui devrait donc accépter le type point) et celle du constructeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int main() { tableau<point, 5>tab; tab[1](5,8); tab[1].affiche(); return 0; }supposé me remplir les coordonées du point tab[1]... Je ne sais pas comment procéder et j'espère que vous pourriez me donner un indice, voilà, merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part point tabl[1](5,8);
Partager