Salut !
En souhaitant réaliser un Sudoku je suis tombé sur une erreur que je n'arrivais pas à comprendre.
J'ai tout de même réussi à localiser où se trouve le souci et je l'ai extrait du projet pour essayer de le résoudre plus facilement.
Voilà comment je peux illuster le souci. J'essaie de faire ceci :
Soit une classe A qui a pour attribut un pointeur sur une instance de la classe B.
Soit une classe B qui a pour attribut un pointeur sur une instance de la classe A.
Ce qui donne les fichiers suivant : A.h, A.cpp, B.h et B.cpp
Et voilà leur contenu :
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 // FICHIER A.h #ifndef A_H #define A_H #include "B.h" class A { private: B* m_b; public: A(); }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Fichier A.cpp #include <iostream> using namespace std; #include "A.h" A::A() : m_b(NULL) { }
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 // Fichier B.h #ifndef B_H #define B_H #include "A.h" class B { private: A* m_a; public: B(); }; #endifVoilà les erreurs obtenues lors des compilations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Fichier B.cpp #include <iostream> using namespace std; #include "B.h" B::B() : m_a(NULL) { }
g++ -Wall -c A.cpp
In file included from A.h:4:0,
from A.cpp:5:
B.h:9:3: error: ‘A’ does not name a typePourriez vous m'expliquer pourquoi cela plante ?g++ -Wall -c B.cpp
In file included from B.h:4:0,
from B.cpp:5:
A.h:9:3: error: ‘B’ does not name a type
Merci davance.
SmallFitz.
Partager