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)
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;
};
La classe Engine qui se rebelle :
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;
};
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
 
#include "../Engine.h"
class GameEngine : public Engine
{
public : 
void Frame(){} // implémentation de Frame()
GameEngine (Game* g,bool estPassif=0 ):Engine(g,estPassif){}
};
Lorsque je compile, j'ai :
"expected `)' before ‘*’ token" qui réfère a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GameEngine (Game* g,bool estPassif=0 ):Engine(g,estPassif){}
Pour ca je peux éventuellement déclarer class game; avant la définition de la classe GameEngine.
Le principal problème est l'autre erreur :
"expected class-name before ‘{’ token " qui réfère à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
class GameEngine : public Engine
{
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
3
class Engine;
class GameEngine : public Engine
{
j'ai droit à
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!