Upsilon | Bonjour ! J'ai un problème, probablement une bêtise, mais dont je ne vois vraiment pas la solution...
J'ai une classe Mouvement définie comme ceci :
Code :
- #ifndef _Mouvement_
- #define _Mouvement_
- #include "Camera.h"
- #include "Vector3f.h"
- #include "Matrice.h"
- #include "Forme3D.h"
- #include "Mouvement.h"
- class Mouvement
- {
- public:
- Vector3f pos, vue;
- int i1, j1; //position actuelle de l'objet
- int i, j; //position où remettre l'objet;
- bool endroit;
- Mouvement(Vector3f laPos, Vector3f laVue, int leI1, int leJ1, int leI, int leJ, bool lEndroit);
- Mouvement();
- };
- #endif
|
Et une classe Camera :
Code :
- #ifndef _Camera_
- #define _Camera_
- #include "Camera.h"
- #include "Mouvement.h"
- #include "Vector3f.h"
- #include "Matrice.h"
- #include "Forme3D.h"
- #include <QStack>
- #include <iostream>
- class Camera
- {
- public:
- Vector3f pos, vue, haut;
- Mouvement essai;
- float vitesse, distance, radians, pi;
- int nombrealeatoiredefinissantlemonde2;
- bool endroit;
- Camera(Matrice *m,float posx,float posy,int nombrealeatoiredefinissantlemonde);
- float pas(int temps);
- bool termine;
- int matriceX, matriceY;
- QStack<Mouvement> mouvements;
- void zoom(int delta,Matrice *mat2,forme3D ** nosformes,uint tex1,uint tex2,uint tex3, uint tex4, uint tex5,uint tex7,uint posdepart);
- void deplacer(int temps);
- void glisser(int temps, Matrice *mat2);
- void regarder();
- void rotation(int temps);
- void raz();
- int suivant(int i, int i1);
- int regard();
- int cibleX();
- int cibleY();
- int provenance(int i, int i1, int j, int j1);
- void annuler(Matrice *mat2,forme3D ** nosformes, uint tex1, uint tex2,uint tex3, uint tex4, uint tex5,uint tex7,uint posdepart);
- };
- #endif
|
Malheureusement, le compilateur semble ignorer superbement la classe Mouvement, et me gratifie de ceci :
Code :
- c...\visual studio 2005\projects\jeu sokoban\Camera.h(22) : error C2065: 'Mouvement' : identificateur non déclaré
- Camera.cpp
|
Je ne pense pas (??) que l'erreur soit liée au template puisque si j'enlève la ligne QStack<Mouvement> mouvements; et que je la remplace par un simple Mouvement essai; pour voir, j'obtiens :
Code :
- ...\visual studio 2005\projects\jeu sokoban\Camera.h(23) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'essai'
- ...\visual studio 2005\projects\jeu sokoban\Camera.h(23) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
- ...\visual studio 2005\projects\jeu sokoban\Camera.h(23) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
|
Voilà. Est-ce que quelqu'un à une idée ? Merci d'avance Message édité par Upsilon le 18-12-2007 à 16:15:39
|