Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como inicializar array de clases

Estas en el tema de Como inicializar array de clases en el foro de C/C++ en Foros del Web. En mi programa un alumno puede estar matriculado en X asignaturas, siendo asignaturas otra clase con sus atributos (Codigo, nombre,...) con lo que el atributo ...
  #1 (permalink)  
Antiguo 21/04/2011, 14:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Como inicializar array de clases

En mi programa un alumno puede estar matriculado en X asignaturas, siendo asignaturas otra clase con sus atributos (Codigo, nombre,...) con lo que el atributo asignaturas de alumno es un array del tipo

Código C++:
Ver original
  1. cAsignaturas *asignaturas[5]

en el constructor del alumnos este atributo asinaturas lo inicializo asi, como si declarar un array

Código C++:
Ver original
  1. char miAsignatura[40];

El problema es que al recorrer este atributo asignaturas como un array, me devuelve un error de puntero del tipo '0xcdcdcdcd' , llevo dias dandole vueltas solo como poder comprobar si por ejemplo asignaturas[0] == NULL o vacio o simplemente si contiene datos pero es imposible acceder no se que hago mal, espero podais ayudarme

Gracias de antemano.
  #2 (permalink)  
Antiguo 21/04/2011, 16:45
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Como inicializar array de clases

Si lo he entendido bien, quieres tener un array de objetos tipo cAsignaturas.
Al hacer
Código:
cAsignaturas *asignaturas[5]
Estas declarando un array de PUNTEROS a cAsignaturas, no un array de cAsignaturas. Si esto es lo que quieres, incia los punteros NULL. Y después asigna los que necesites con
Código:
asignaturas[0]=new cAsignaturas(argumentos);
Aunque yo tendría una clase adicional cAlumnos para manejar las asignaturas de una forma más ordenada y elegante.
__________________
Foros Desarrollo de Juegos
  #3 (permalink)  
Antiguo 21/04/2011, 17:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como inicializar array de clases

Cita:
Iniciado por ssaammuu Ver Mensaje
Si lo he entendido bien, quieres tener un array de objetos tipo cAsignaturas.
Al hacer
Código:
cAsignaturas *asignaturas[5]
Estas declarando un array de PUNTEROS a cAsignaturas, no un array de cAsignaturas. Si esto es lo que quieres, incia los punteros NULL. Y después asigna los que necesites con
Código:
asignaturas[0]=new cAsignaturas(argumentos);
Aunque yo tendría una clase adicional cAlumnos para manejar las asignaturas de una forma más ordenada y elegante.

pero y como los inicio a NULL ?

en la clase del alumno tengo el atributo asignaturas declarado asi...

Código C++:
Ver original
  1. class cAlumno{
  2.     private:
  3.         cAsignatura *asignaturas[5];

y en el constructor lo inicializo asi

Código C++:
Ver original
  1. cAlumno::cAlumno(){
  2.     char asignatura[40];
  3. }

Creo que ahi esta el problema pero no consigo arreglarlo, gracias por la ayuda :)
  #4 (permalink)  
Antiguo 21/04/2011, 17:50
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Como inicializar array de clases

si te digo la verdad, no se que hace ahí.
Código:
char asignatura[40];
Código C++:
Ver original
  1. cAlumno::cAlumno(){
  2.     for(int i=0;i<5;i++)
  3.     asignaturas[i]=NULL;
  4. }
__________________
Foros Desarrollo de Juegos
  #5 (permalink)  
Antiguo 21/04/2011, 17:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como inicializar array de clases

si me acabo de dar cuenta ya lo arregle muchas gracias :)

Antes de crear otro hilo...sabes como inicializar a vacio un array de caracteres del tipo

Código C++:
Ver original
  1. char codigo[6];
  #6 (permalink)  
Antiguo 21/04/2011, 18:17
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Como inicializar array de clases

Se supone que está vacío pero para vaciar un array de chars yo personalmente haría lo siguiente
Código C++:
Ver original
  1. //necesitaras #include <cstring>
  2. memset(codigo,'\0',sizeof(codigo));
Aunque prefiero trabajar con strings
__________________
Foros Desarrollo de Juegos
  #7 (permalink)  
Antiguo 22/04/2011, 05:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Como inicializar array de clases

Solucionadisimo, muchas gracias. Aunque ahora llega el problema del stack overflow creo que por un array de 1000 que necesito a ver como soluciono esto...

Etiquetas: clases
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.