Bonjour, j'ai codé et tente de compiler quelques classes template pour gérer Points, Vecteurs, Droites, etc ... en 2D.
En tentant de mettre chaque classe dans un fichier hpp, impossible de trouver une astuce pour compiler, il me dit toujours que l'objet truc n'a pas été défini, etc ... Le fait est que j'arrive très bien à compiler en mettant tout mon code dans un seul fichier énorme, donc voici la structure :
Voilà, je vois pas comment séparer le tout en mettant comme d'habitude, une classe dans un fichier ....
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #ifndef TRUC #define TRUC template <typename T> class Line; template <typename T> class Vector { public : //defs des méthodes de Vector, utilisant entre autre des paramètres de type const Line<T>& }; template <typename T> class Point { public : //idem -> utilise des const Line<t>& }; template <typename T> class Line { public : //méthodes de Line Vector<T> vector; Point<T> point; //attributs publics }; //et ici, toutes les méthodes et surcharges d'opérateurs //sachant que celles de Vector utilisent celles de Line //celles de Point utilisent Vector et Line //celles de Line utilisent Vector et Point
Y-a-t-il une méthode pour organiser ses template ?
PS : j'ai déjà séparé code source et définition en utilisant l'astuce du fichier .tpp (lien), et en metant #include "Vector.tpp" à la fin de la définition de Vector,
mais ça ne change pas grand chose au problème ....
Partager