Salut,
J’ai un gros souci, qui est pas mal dur a expliquer mais je vais essayer de faire de mon mieux.
Alors voila.
J’ai une class (Celements) :
Cobjet c’est une class banale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Celements { public : int x,y,z ; std::vector <Cobjet> objet; ... ... ... }
De cette manière là, chaque objet de la class Celements créé aura son propre vector « objet ».
Dans mon programme je déclare en tout 3 objet de la class Celements mais j’aimerai que deux d’entre eu partage le meme vector « objet ».
Sous forme d’image cela peu se représenter comme ça :
on se retrouverait donc avec Elements[0].objet == Elements[1].objet != Elements[2].objet
et Elements[0].x != Elements[1].x != Elements[2].x (pareille pour y et z)
Pour faire cela, j’ai déjà pensé à une petite idée.
Déclarer un pointeur de vector dans Celements puis créé deux constructeurs.
Le 1ere sans arguments et dans se cas la, on créé un vector et envoie l’adresse du pointeur au pointeur de vector de la Celements.
Le 2eme avec un argument contenant l’adresse d’un vector et envoyer cette adresse au pointeur de vector de la Celements.
Un truk du style :
Mais évidement cela ne marche pas... il faudrait dans ce cas définir objet comme un pointeur de vector et non pas comme un pointeur de Cobjet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class Celements { public : int x,y,z ; Cobjet * objet; Celements() { std::vector <Cobjet> nn; objet = &(nn); } Celements(Cobjet *np) { objet = np; } ... ... ... }
Avait vous une idée de comment je pourrais faire ?
Merci
Partager