Moi je te propose la structure suivante si tu veux absolument faire du polymorphisme :
tout d´abord un tableau de players (passons tout de suite aux pointeurs) :
Player* T[4];
Puis :
class Player
{
...
virtual void EventControl()=0; // virtuelle pure
};
Ensuite, si les joueurs sont différents (pas gérés pareil) tu peux tres bien faire :
class SpecialPlayer : public Player
{
void EventControl();
};
class AnotherPlayer : public Player
{
void EventControl();
};
Tu instancies ainsi :
T[0] = new SpecialPlayer();
T[1] = new AnotherPlayer();
et ainsi, tu peux appeler sans complexe l´une ou l´autre des fonctions qui branchera sur la bonne
T[0]->EventControl();
Mais bon, moi je ne te conseille personnellement pas de polymorphisme... C´est sorir l´artillerie lourde pour quelque chose qui n´en vaut pas la peine je pense : car tes players ne seront peut etre pas radicalement différents, bref !