Bonjour,
je bute sur un probleme et j'aurais bien besoin d'aide pour m'en sortir:
J'ai une classe abstraite "Engine", qui contient une fonction virtuelle pure "init()".
Je dérive cette classe en une classe "Game Engine", une autre "FrameEngine", etc. ou j'implémente une fonction init() en dur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Engine { public: Engine(EngineList* engines); virtual ~Engine(); virtual void init() = 0 ; protected: EngineList* engines; private: };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class GameEngine : public Engine { public: GameEngine( long resX, long resY, bool cursor, bool delay, int timePerFrame, EngineList* engines); virtual ~GameEngine(); virtual void init(long resX, long resY, bool cursor, bool delay, int timePerFrame); // fonction implémentée protected: EngineList* engines; private: };
J'ai besoin de créer un tableau avec un pointeur vers chacun de mes Engines (GameEngine, FrameEngine, etc.).
Je crée donc un Engine*, je crée les objets qui vont bien, et quand je lance la fonction init, le compilateur rale comme quoi la classe Engine est virtuelle.
Qqn peut me dire comment me sortir de ce probleme?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Engine* list[2]; list[0] = new GameEngine(....)// je declare la liste de parametres qui vont bien
Merci!
Z.
Partager