instanciation de classe dérivée de classe abstraite
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:
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:
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:
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.