Tableau avec des objets différents... [Résolu]

Signaler
Messages postés
8
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
10 novembre 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Salut à tous...

Je vous explique mon problème : je souhaiterais créer un tableau qui pourrait contenir des objets de types différents.
J'ai crée une classe equipe comme ceci :

class team
{
protected:
string name;
int n; // maximal number of players
int occupation; // number of players already registrered in the team
player *list_players;
}

J'ai mis ici que les différents states de la classe.

Dans mon constructeur je definis ma list_players comme ceci :

list_players = new player [n];

ou player est la classe qui represente un joueur.

Le problème c'est que j'ai deux classes qui dérivent de joueurs : les pros et les en formation...
donc dans ma list_players de ma team je voudrais à la fois mettre des joueur pro et des joueur en formation...

Deux types différents dans un même vecteur... Et ca je sais pas faire

Merci d'avance

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Il faut utiliser des pointeurs, c'est le seul moyen d'utiliser le polymorphisme:

player** list_players;
list_players=new players*[20];
_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut :)
Tu peux définir une classe de base Joueur, et deux classes dérivées JoueurPro et JoueurFormation.
Tu pourras alors définir un vecteur de Joueur.

Trouve un bon cours C++ pour t'expliquer le fonctionnement de ceci, par exemple ici.

Enjoy, ++
Messages postés
8
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
10 novembre 2006

Bon voila une bonne chose de faite j'ai compris comment on cree un tableau avec des objets de différentes classes dérivées. Cependant mon problème vient de s'aggraver.
En effet ma classe mère que j'ai appelé classe player est en fait une abstract class...

Dans ma classe team je veux mettre un tableau de players, mais je n'arrive pas à déclarer ma classe.
Dans l'idéal ca serait

class player
    string name;
    .....
    player *list_players;

....

Puis quand je définis mon constructeur je fais
list_players=new players[20];

mais je n'ai pas le droit d'alloquer de la mémoire pour une abstract classe, la est le problème...