Bonjour à tous, alors voila pour mon problème il s'agit d'un problème que je rencontre régulierement lorsque je code en C++ aussi je vous demande votre aide pour qu'enfin je sache le résoudre ^^.
Voici mon code :
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 /* * EtatRobot.cpp * * Created on: 12 déc. 2009 * Author: blanc */ #include "EtatRobot.h" #include "Position.h" #include <stdio.h> #include <stdlib.h> #include <iostream> EtatRobot::EtatRobot() { direction = "Nord"; position = new Position(0,0); obstacle = NULL; objet = NULL; robot = new Robot(); } EtatRobot::~EtatRobot() { // TODO Auto-generated destructor stub }
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 /* * EtatRobot.h * * Created on: 12 déc. 2009 * Author: blanc */ #ifndef ETATROBOT_H_ #define ETATROBOT_H_ #include "Robot.h" #include "Position.h" #include "Obstacle.h" #include "Objet.h" #include <string> using namespace std; class Robot; class EtatRobot { private: Robot* robot; string nomEtat; string direction; Position* position; Obstacle* obstacle; Objet* objet; public: EtatRobot(); virtual ~EtatRobot(); }; #endif /* ETATROBOT_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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 #include "Robot.h" #include "Position.h" #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; //class EtatRobot; Robot::Robot() { direction = "Nord"; position = new Position(0,0); obstacle = NULL; objet = NULL; etat = new EtatRobot(); } Robot::~Robot() { // TODO Auto-generated destructor stub } void Robot::avancer(int distance) { cout << "Le robot avance de " << distance << " cm.\n"; } void Robot::tourner(string direction) { cout << "Le robot tourne vers la direction " << direction << ".\n"; } void Robot::saisir(Objet* o) { objet = o; cout << "Le robot saisi l'objet.\n"; } void Robot::poser() { objet = NULL; cout << "Le robot pose l'objet;\n"; } void Robot::peser() { cout << "Le robot pèse l'objet... L'objet pèse : " << objet->getPoids() << " grammes.\n"; } void Robot::rencontrerObstacle(Obstacle* o) { obstacle = o; cout << "Le robot rencontre un obstacle\n"; } void Robot::evaluerObstacle() { cout << "Le robot evalue l'obstacle... Il a pour hauteur " << obstacle->getHauteur() << "cm.\n"; } void Robot::arreter() { cout << "Le robot s'arrete"; } void Robot::repartir() { cout << "Le robot redémarre"; } void Robot::afficher() { cout << "Affiche le chemin parcouru par le robot"; } Position* Robot::getPosition() { return position; } Obstacle* Robot::getObstacle() { return obstacle; } Objet* Robot::getObjet() { return objet; } string Robot::getDirection() { return direction; }Mon problème est donc dans le Robot.cpp qui me met une erreur à la ligne 17 : etat = new EtatRobot();
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
40
41
42
43
44
45
46
47 /* * Robot.h * * Created on: 27 nov. 2009 * Author: Chido */ #ifndef ROBOT_H_ #define ROBOT_H_ #include "EtatRobot.h" #include "Position.h" #include "Obstacle.h" #include "Objet.h" #include <string> using namespace std; class Robot { private: string direction; Position* position; Obstacle* obstacle; Objet* objet; EtatRobot* etat; public: Robot(); virtual ~Robot(); void avancer(int distance); void tourner(string direction); void saisir(Objet* o); void poser(); void peser(); void rencontrerObstacle(Obstacle* o); void evaluerObstacle(); void arreter(); void repartir(); void afficher(); Position* getPosition(); Obstacle* getObstacle(); Objet* getObjet(); string getDirection(); }; #endif /* ROBOT_H_ */
L'erreur étant undefined reference to EtatRobot::EtatRobot()
Je n'ai pas inclu le code des autres classes dites moi si cela est necessaire.
Je code sous ubuntu 9.10 avec eclipse.
Voila merci d'avance en esperant que cette question n'ai pas été déjà trop poser j'ai chercher rapidement mais je suis dans le train donc ma connection n'est pas idéale.
Edit : J'ai essayer avec class EtatRobot; et sans même résultat... J'ai essayer d'inclure le .h directement dans le CPP pas de différence. La seule maniere que j'ai trouver est de ne pas initialiser mon instance etat mais bon j'en ai besoin :s
Partager