Définition de 2 classes possédant chacune des Ptr vers des objets de l'autre
Bonjour,
Le titre n'est pas très représentatif mais je ne sais pas comment le dire...
Contexte :
Je développe une application utilisant un maillage (algo de DELAUNAY) et je cré plusieurs objet dont "Triangle" et "Segment". Pour mettre en place cet algo j'ai besoin que ma classe Triangle possède 3 pointeurs vers des objets type Segment (logique un triangle à bien 3 arêtes) donc la pas de Pb mais j'ai également besoin que ma classe Segment possède 2 pointeurs vers des objets type Triangle (les 2 triangles juxtaposés du maillage partageant le segment en question.)
J'ai donc voulu déclarer mes classes comme cela :
Pour la classe Triangle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #ifndef TRIANGLE
#define TRIANGLE
#include <Segment.h>
class Triangle
{
public :
Segment *S1, *S3, *S3;
};
#endif |
Pour la classe Segment :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #ifndef SEGMENT
#define SEGMENT
#include <Triangle.h>
class Segment
{
public :
Triangle *Tv1, *Tv2;
};
#endif |
Le Hic c'est que ca plante à la compilation sur la ligne 11 de la classe Triangle : 'Segment' does not name a type'.
=> Si je comprend bien c'est qu'il ne connait pas le type 'Segment' à ce moment là alors qu'il est bien défini en include.
Si je supprime #include <Triangle.h> de la classe Segment, le problème disparait mais je ne peux alors plus avoir de pointeurs vers des triangles dans cette classe ce qui est problématique.
Je sens bien que ca ne peut pas marcher comme cela puisque chaque classe a besoin de l'autre pour être définie mais comment solutionner proprement ce problème ?
Merci d'avance pour votre aide, et désolé si la réponse est obvious, je débute en programmation.
Bien cordialement,
Nico