Bonjour à tous,

J'ai un problème de compilation.
J'obtiens l'erreur :
'Liste_transitions' is used as a type, but not defined as a
lorsque j'essaye de compiler et je ne vois pas d'où ça vient, il y a bien le include "transition.h" en haut du fichier. J'ai essayé avec un forward declaration mais ça ne marche pas non plus.

Voici le code de mes deux fichiers :
etats.h
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
35
36
37
38
39
 
#include <iostream>
#include <vector>
 
#include "transition.h"
 
class Liste_etats;
 
class Etat
{
private :
    bool m_est_initial;
    bool m_est_final;
    int m_numero;
    Liste_transitions m_liste_transition;
 
public :
    Etat();
    Etat(int numero);
    Etat(int numero, bool initial, bool final);
    ~Etat();
    void ajout_transition(int, int,char);
    Liste_etats retour_liste_EA(char c);
};
 
 
//la classe Liste_etats contient une liste d'états dans un conteneur de type vector
class Liste_etats
{
private:
    std::vector<Etat> m_tab_etats;
 
public:
    //destructeur
    ~Liste_etats();
    //méthode qui permet l'ajout d'une transition à la liste
    void ajout_etat(int numero, bool initial, bool final);
    Liste_etats retour_liste_EA(char c);
};
transition.h
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
35
36
37
38
39
 
#include <iostream>
#include <vector>
 
#include "etats.h"
 
class Liste_etats;
 
 
//la classe Transition contient les infos d'une transition, cad l'état de départ, l'état d'arrivée, et la lettre
class Transition
{
private:
    int m_depart, m_arrivee;
    char m_etiquette;
 
public:
    Transition();
    Transition(int, int, char);
    int get_arrivee();
    char get_etiquette();
 
};
 
 
 
//la classe Liste_transitions contient une liste de transitions dans un conteneur de type vector
class Liste_transitions
{
private:
    std::vector<Transition> m_tab_transitions;
 
public:
    //destructeur
    ~Liste_transitions();
    //méthode qui permet l'ajout d'une transition à la liste
    void ajout_transition(int depart,int arrivee, char lettre);
    Liste_etats retour_liste_EA(char c);
};
L'erreur est pour la ligne 14 du premier fichier.

Merci d'avance.