ADA - forward declarations

 
Vista:

forward declarations

Publicado por HalNueveMil (2 intervenciones) el 22/04/2003 02:34:26
Buenas, voy a intentar exponer el problema que tengo de una forma clara:

tengo un paquete genérico, que es la base de lo que quiero hacer; es de listas dinámicas con punteros.
Después he de hacer tres instancias a éste, con tres tipos diferentes, que no dejan de ser simples registros.
El problema viene aqui: cada uno de estos registros tiene un puntero que apunta a un nodo perteneciente a otra instancia, lo que se puede resumir asi:
paquete a con tipo t_a y puntero a b,
paquete b con tipo t_b y puntero a c,
paquete c con tipo t_c y puntero a a.
Con procedimientos es fácil solucionar llamadas de unos a otros con las forward declarations (o simplemente declarando un ads), pero con paquetes no sé como hacerlo.
Alguien me echa una mano?

Gracias de antemano :-)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:forward declarations

Publicado por HalNueveMil (2 intervenciones) el 22/04/2003 02:54:55
Se me olvido antes, el mensaje de error es
"circular unit dependency"
que es lo que queria evitar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:forward declarations

Publicado por Serox (2 intervenciones) el 23/04/2003 20:04:44
Si a mi me da tambien un error de dependencia circular entre dos modulos que utilizan citas de sincronizacion entre ellos. Lo he intentado con un pragma elaborate() en uno de ellos y no se soluciona...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:forward declarations

Publicado por Gneuromante (24 intervenciones) el 11/12/2004 19:04:34
Deberías definir los tres tipos en un mismo paquete porque están fuertemente relacionados. Las instanciaciones también deberías hacerlas en el mismo paquete. Creo que con eso se resolvería este problema.

Para Ada 2005 están preparando una nueva clausula que sea limited with que va a permitir dependencias cruzadas entre paquetes en las que el único uso que se pueda hacer de uno a otro sea mediante punteros. Esto es para poder usar una filosofía de un tipo por paquete y con punteros con referencias cruzadas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar