Bonjour à tous,
Un petit problème que je n'arrive pas a résoudre :
Je m'aide du tuto de Pierre Schwartz : ici
J'ai des erreurs de compil :
voici les classes qui posent problème :
La classe Game composée d'une liste de moteurs Engine (Engine est une classe abstraite)
La classe Engine qui se rebelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "Engine.h" class Game { protected: list<Engine*> lEngine; };
Et donc une fille de Engine, GameEngine :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "Game.h" #include "GameEngine/GameEngine.h" //------------------------------------------------------------------------ class Engine { public : void hello(){} virtual void Frame()=0;//Engine est une classe abstraite Engine(class Game* g, bool aEstPassif=0):parent(g),estPassif(aEstPassif){} protected : Game* parent; bool estPassif; };
Lorsque je compile, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "../Engine.h" class GameEngine : public Engine { public : void Frame(){} // implémentation de Frame() GameEngine (Game* g,bool estPassif=0 ):Engine(g,estPassif){} };
"expected `)' before ‘*’ token" qui réfère aPour ca je peux éventuellement déclarer class game; avant la définition de la classe GameEngine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part GameEngine (Game* g,bool estPassif=0 ):Engine(g,estPassif){}
Le principal problème est l'autre erreur :
"expected class-name before ‘{’ token " qui réfère à
Donc je crois comprendre qu'il ne reconnait pas Engine comme une classe. Si je déclare Engine avant, donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 class GameEngine : public Engine {
j'ai droit à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 class Engine; class GameEngine : public Engine {
forward declaration of ‘struct Engine’
plus
invalid use of incomplete type ‘struct Engine’
Je ne vois pas du tout comment régler le problème.
J'ai ommis des include STL, et je n'ai utilisé que GameEngine (même si ya aussi SoundEngine, GuiEngine et ServerEngine qui trainent a coté mais dont l'implémentation est la même pour l'instant (vides sauf definition de Frame(){} et appele au constructeur parent Engine())
Je peux evidemment rajouter le code complet si nécessaire :-)
Merci d'avance!
Partager