constructeur allocation dynamique tableau
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).
Code:
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];
} |
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.
Imaginons que la classe ObjB soit :
Code:
1 2 3 4
| class ObjB
{
int v;
} |
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:
1 2 3 4
| ObjB::ObjB(int value)
{
v = value;
} |
Je pourrais le faire en "deux coups" :
Code:
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);
}
} |
avec
Code:
1 2 3 4
| ObjB::set_value(int value)
{
v = value;
} |
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().
J'espère avoir été clair.
Merci de votre aide
A bientot