Tableau dynamique

cs_azkab Messages postés 22 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 juin 2004 - 17 mars 2004 à 19:38
cs_azkab Messages postés 22 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 juin 2004 - 18 mars 2004 à 23:00
bonjour,
dans mon programme j ai deux classes (classe 'rectangle' et classe 'cercle'). j ai une troisieme classe 'Objet' qui est l aggregation de ces deux classes (rectangle et cercle). cad un objet O peut etre composé d'un ou plusieurs rectangles et d 'un ou plusieur cercles. mon probleme c est comment pourrais je faire pour creer une liste de mes objets 'Objet'?.
est ce qu'un tableau dynamique pourrait faire l'affaire?

***************************
Liste d'objets
***************************
O1 : Rectangle
-------------------------------------
Rectangle
-------------------------------------
cercle
***************************
O2: rectangle
-------------------------------------
cercle
--------------------------------------
cercle
****************************
O3 : Rectangle
****************************
O4: cercle
****************************
.... ainsi de suite
---------------------------------------

je compte sur votre aide
et merci d'avance

return(0);)

6 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 mars 2004 à 19:52
oui un simple tableau allouer dyn

tu peux faire un truc comme ca (simple suggestion)

struct Objet
{
Rectangle **rectangles;
Cercle **cercles;
int nbC,nbR;

Objet(int nbRectangles,int nbCercles)
{
nbR=nbRectangles;
rectangles=new Rectangle[nbR];
for(int i=0;i<nbR;i++) rectangles[i]=new Rectangle;

nbC=nbCercles;
cercles=new Cercle[nbC];
for(int i=0;i<nbC;i++) cercles[i]=new Cercle;
};// Objet

};// struct

> comme ca le constructeur prend en parametre le nombre de cercles et le nombres de rectangles dont ton objet sera constituer
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 mars 2004 à 23:52
djl :
tes tableaux sont des tableaux de Rectangle* et Cercle*, donc le premier new doit être :
rectangles=new Rectangle*[nbR];
cercles=new Cercle*[nbC];

par contre je vois pas l'intérêt de faire des tableaux de pointeurs, des tableaux de Rectangle et Cercle seraient suffisant .

struct Objet
{
Rectangle *rectangles;
Cercle *cercles;
int nbC,nbR;
Objet(int nbRectangles,int nbCercles)
{
nbR=nbRectangles;
rectangles=new Rectangle[nbR];
nbC=nbCercles;
cercles=new Cercle[nbC];
};// Objet

};// struct
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 mars 2004 à 07:54
ouai desole j'ai oublié une *, par contre moi je prefere un tableau de pointeur car tu peut choisir le constructeur a appeler, surtout que j'imagine qu'avec des cercles et rectangles doit y avoir des parametres, ensuite les objet sont dynamique, tu peux en detruire un en particulier
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
18 mars 2004 à 12:53
c'est vrai, j'y avais pas pensé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 mars 2004 à 13:27
ok, tant que j'y suis je met la correction avec en prime le destructeur que j'avais oublié (honte sur moi :D)

struct Objet
{
Rectangle **rectangles;
Cercle **cercles;
int nbC,nbR;

// construteur
Objet(int nbRectangles,int nbCercles)
{
nbR=nbRectangles;
rectangles=new Rectangle*[nbR];
for(int i=0;i<nbR;i++) rectangles[i]=new Rectangle;

nbC=nbCercles;
cercles=new Cercle*[nbC];
for(int i=0;i<nbC;i++) cercles[i]=new Cercle;
};// Objet

~Objet()
{
for(int i=0;i<nbR;i++) delete rectangles[i];
delete[] rectangles;

for(int i=0;i<nbC;i++) delete cercles[i];
delete[] cercles;
};// ~Objet

};// struct

0
cs_azkab Messages postés 22 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 juin 2004
18 mars 2004 à 23:00
les gars je vous remerci infiniment pour votre aide. je vais essayer d integrer ce tableau de pointeurs. et je vous tienderais des nouvelles.
merci
return(0);)
0
Rejoignez-nous