• Viernes 1 de Noviembre de 2024, 04:28

Autor Tema:  No me deja crear un array de arrays de objetos  (Leído 1203 veces)

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
No me deja crear un array de arrays de objetos
« en: Lunes 18 de Mayo de 2009, 16:04 »
0
Hola:

Necesito ayuda con una cosa del código que no sale ni para atrás. Estoy intentando crear un array de arrays de objetos. Los objetos son de tipo Nodo(creado por mi). En un primer momento he escrito lo siguiente:

"Red.h"

public:
   Nodo** capas;
   Nodo* nodos;
   Red(void);
   Red(int *num_nodos);
   ~Red(void);
};

"Red.cpp"

Red::Red(int *num_nodos) //esto es un array de enteros
{
       int k_capas = sizeof(num_nodos)/sizeof(num_nodos[0]);

   capas = new Nodo* [k_capas];
   
   for(int i=0;i<k_capas;i++)
   {
      capas = new Nodo[num_nodos];
   }
   
}

Pero luego resulta que no puedo hacer red->capas[0][0]. Se supone que el array capas debería de tener el tamaño del vector num_nodos y que además, cada posición de capas ha de apuntar a otro array de tamaño num_nodos. Pero lo que me sale es que capas tiene tamaño 1 y que ademas no es un array de Nodos, sino que directamente es un objeto de tipo Nodo.

¿Alguien sabe como puedo hacer ese array de arrays de objetos de tipo Nodo?

+-----++++++++++---------+---------+---------+---------+---------+
+  -------------->+ Nodo0 + Nodo1 + Nodo2 +    .....     +  NodoN +++++array 0
+-----++++++++++---------+---------+---------+---------+---------+
+ ... +
+-----++++++++++---------+---------+---------+---------+---------+
+  -------------->+ Nodo0 + Nodo1 + Nodo2 +    .....     +  NodoN +++++array M
+-----++++++++++---------+---------+---------+---------+---------+


Muchas gracias

cremix

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: No me deja crear un array de arrays de objetos
« Respuesta #1 en: Lunes 18 de Mayo de 2009, 17:08 »
0
Ya lo he solucionado. No lo entiendo muy bien, o mejor, no lo visualizo mentalmente muy bien pero sé que tiene que ser así. El código me compila y me da lo que qquiero.

Un saludo