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()".
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:
};
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
 
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.

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
Qqn peut me dire comment me sortir de ce probleme?

Merci!

Z.