Arrays de clases

De ChuWiki
Saltar a: navegación, buscar

Vamos a ver cómo declarar arrays de clases que hayamos definido.

Si tenemos una clase con constructor sin parámetros, no hay ningún problema, se declara igual que un array de cualquier otro tipo

// Como array
MiClase array[10];
...
// o como puntero
MiClase *array;
array = new MiClase[10];
...
delete [] array;

Sin embargo, si no hay un constructor sin parámetros, no podemos hacer esto. En ningún caso el compilador sabe como construir los objetos de tipo MiClase sin parámetros.

En este caso, debemos usar punteros a punteros e inicializar todo con paciencia.

Si queremos un array

MiClase *array[10];
for (int i=0;i<10;i++)
   array[i] = new MiClase(...parametros...);
...
for (int j=0;j<10;j++)
   delete array[j];

o bien, si queremos que el array sea de un tamaño variable, tenemos que usar punteros a punteros

MiClase **array;
array = new (MiClase *)[10];
for (int i=0; i<10; i++)
   array[i] = new MiClase(...parametros...);
...
for (int j=0; j<10; j++)
   delete array[j];
delete [] array;