Programación General > C++ Builder
Clases-> Matriz -> Estructura... ?¿
(1/1)
tamarinda:
Buenas a todas y todos :D
Les explico:
Tengo un archivo llamado: definiciones_clases.h donde como su nombre lo indica estan definidas las clases.
--- Código: Text --- /* MAPA */class mapa{[COLOR=orange]////////////////////////////////////////////////////////////////////////////////////////////////////////////////// MATRIZ LOGICA /////////////////////////////// // estructura de un tren en la matriz logicatypedef struct trensito{ int tipo; // 1. Pasajero // 2. Carga}TREN; //estructura de un track de la via ferrea dentro de la// matriz logicatypedef struct tracksito{ // _ _ int tipo; //1. | 2. | //3. |_ 4. _| //5. - 6. | bool status; // 0. Ocupado 1. Libre}TRACK; //estructura de una celde de la matriz logicatypedef struct celdita{ int tipo; // 1. Estacion 2. Tren 3. Track TRACK tra; //tra tra tra tra TREN tre; } CELDA; ////FIN/////////////////////////// MATRIZ LOGICA ///////////////////////////////////////////////////////////////////////////////////////////////////////////////[/COLOR] private: CELDA clda[17][20]; int x,y; public: mapa(CELDA clda); //metodo que carga la configuracion actual de la simulacion void cargar_configuracion(void); //metodo utilizado para verificar que tipo de elemento hay en //unas coordenadas dadas: 1. estacion 2. tren 3. track int verificar_posicion(int x, int y,CELDA clda);}; //fin de la definicion de la clase: mapa
Quisiera resaltar, CELDA clda[17][20]; ya que es donde tengo el problema.
Mi primera pregunta es, si es válido declarar la estructura (CELDA) de la matriz (cld[17][20]) en donde esta...?
Luego, el archivo llamado
Luego el archivo llamado: implementacion_clases.cpp es donde desarrollo el codgo de los metodos de las clases.
--- Código: Text --- #include "definicion_clases.h" //constructor que inicializa la matriz logica mapa::mapa(clda){ int fi,co; for (fi=0;fi<=17;fi++) { for (co=0;co<=20;co++) { [B][COLOR=red] [SIZE=7] clda[fi][co].[/SIZE][/COLOR][/B] x=0; } // fin del for (co=0;co<=20;co++) } // fin del for (fi=0;fi<=17;fi++) };
es aqui, en la linea roja, donde al colocar el . para acceder a la estructura me da el siguiente error:
[C++ Error] implementacion_clases.cpp(1): Unable to invoke Code Completion due to errors in source code
he tbn colocado en: mapa::mapa(clda) -----------> mapa::mapa(CELDA clda)
pero de ninguna manera me funciona.
Esperando por favor me ayuden
Gracias de antemano.
el_shanky:
Primero que nada tengo entendido que la funcion miembro de la clase tiene que tener el tipo de dato que reconoce en el prototipo, es decir lo que habias hecho antes:
--- Citar ---he tbn colocado en: mapa::mapa(clda) -----------> mapa::mapa(CELDA clda)
--- Fin de la cita ---
Despues de ver eso y sacarle todo el código html muerto que te quedó intenté compilarlo a tu prog y a mi me salta:
[C++ Error] Unit1.cpp(62): E2094 'operator+' not implemented in type 'mapa::celdita' for arguments of type 'int'
La verdad no me puse a depurar x que no me llevo bien con los structs! jaja
Tmb te aconsejo que x ser una Clase no pongas valores enteros ya que tienen que ser lo mas genéricas posible.
Ojalá te haya servido de algo! exitos!
Navegación
Ir a la versión completa