Autor
|
Tema: Problema declarando objetos dentro de objetos, ligados entre sí (Leído 1,753 veces)
|
jscupc
Desconectado
Mensajes: 4
|
Hola, tengo un problemilla referente a la declaración de objetos dentro de otros objetos, y quisiera saber si me podríais echar una mano. Tengo lo siguiente:
class Serie { GPS objgps; POS objpos; }
Mi main debe crear dos objetos Serie (los llamaré Serie1 y Serie2). Entonces crea un thread que, como método inicial, utiliza uno que está dentro del objeto objgps de Serie1. Dentro de un método de Serie1.objgps, necesito acceder a un método de Serie2.objpos, que a su vez debe acceder a métodos de Serie2.
Mi problema es que si hago los includes así:
#include GPS.h #include POS.h #include Serie.h
Cuando en POS quiero declarar un objeto del tipo Serie dentro de la definición de la clase, o sea:
class POS { Serie miserie; }
El compilador me da el error:
error C2146: syntax error : missing ';' before identifier 'serial'
Si no declaro Serie miserie dentro de POS, el código, hasta ese punto, compila perfectamente. Me podríais dar alguna sugerencia para hacer lo que desearía hacer? Gracias.
|
|
|
|
|
En línea
|
|
|
|
|
|
jscupc
Desconectado
Mensajes: 4
|
Pero es que si no declaro el objeto serial dentro de la clase POS, me compila perfectamente. Es cuando quiero incluir un objeto de otro tipo (por ejemplo un Serial dentro de un POS o GPS, o un GPS dentro de un POS) que me da el error de sintaxis...
|
|
|
|
|
En línea
|
|
|
|
Xafi
Desconectado
Mensajes: 1.211
|
si pones codigo sera mas facil de leer.
|
|
|
|
|
En línea
|
|
|
|
|
Eternal Idol
|
Usa punteros.
|
|
|
|
|
En línea
|
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón.
|
|
|
|
|
|
|
|
Eternal Idol
|
¿POS *objpos; no funciona? No pruebo, estoy cansado 
|
|
|
|
|
En línea
|
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón.
|
|
|
jscupc
Desconectado
Mensajes: 4
|
Siento no poder publicar el código, pues no es de mi propiedad y no estoy autorizado para ello. Pero intentaré volver a plantear resumidamente mi duda:
Tengo 3 clases, A, B y C, las cuales actualmente tengo programadas y funcionan perfectamente.
Tanto B como C están contenidas en un objeto de clase A, y quisiera que la clase C pudiera acceder a su vez al objeto A que le contiene. Además, quisiera que en la clase B pudiera tener un objeto de clase C, y en la clase C otro de clase B.
Como ya he remarcado, las tres clases, que actualmente funcionan perfectamente, tienen este aspecto:
class A { class B; class C; }
class B {}
class C {}
Pero en el momento que cambio lo anterior por lo siguiente:
class A { class B; class C; }
class B {}
class C { B objetoB; }
El compilador me dice que falta un ";" antes de B objetoB, y esto es lo que no logro solucionar. Creo que es algo muy básico que un objeto pueda contener objetos de otro tipo, me suena que con Java (que ahora ya hace un tiempo que no utilizo) se podía hacer perfectamente.
Cada clase la tengo contenida en ficheros distintos. Muchas gracias a los que habéis contestado, espero que me podáis ayudar.
Saludos.
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|