Salut,
J'ai un objet ObjA qui contient, entre autre, un tableau d'objets B. Je me demande comment, dans le constructeur ObjA(), je peux allouer dynamiquement le tableau d'objets ObjB en appelant leur constructeur paramétré ObjB(int value).
En faisant ça, j'imagine que c'est le constructeur par défaut de ObjB qui est appelé pour créer le tableau de 'size' élements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class ObjA { int size; ObjB *B; }; ObjA::ObjA() { //initialisation des membres de A size = 30; B = new ObjB[size]; }
Imaginons que la classe ObjB soit :Moi j'aimerais bien, qu'en construisant l'objet A, l'objet B soit alloué dynamiquement et que le membre 'v' soit l'indice du tableau d'objets B de la classe A... en appelant le constructeur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class ObjB { int v; }Je pourrais le faire en "deux coups" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ObjB::ObjB(int value) { v = value; }avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ObjA::ObjA() { size = 30; B = new ObjB[size]; for (int i=0; i < size; i++) { B.set_value(i); } }mais je me demande s'il y a un moyen plus "élégant" qui m'évite d'écrire explicitement cette boucle et de définir cette fonction B::set_value().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ObjB::set_value(int value) { v = value; }
J'espère avoir été clair.
Merci de votre aide
A bientot
Partager