[C con Clase] lista abierta con datos de distinto tipo

Jorge Pozo jorgepozo en conclase.net
Lun Nov 7 21:03:17 CET 2011


Hola,

primer post... :P

Estoy intentando  aplicar parte de lo que viene explicado en el curso de estructuras
dinámicas... (aunque aviso que soy muy mal alumno, siempre intento ir mas rápido
de la cuenta :o, así que perdón por las incoherencias).

Tengo   varias   clases,   algunas  de  las cuales contienen una lista
(abierta) de objetos de otra clase determinada.

por ejemplo:
clase A
clase B
clase C tiene una lista con objetos de la clase A
clase D tiene una lista con objetos de la clase C

En  principio tendría dos tipos de listas, con dos tipos de nodos
distintos.  La  clase  C  tendría asociada la lista de tipo 1 (lista de
objetos A) y la clase D la lista de tipo 2 (lista de objetos C) ¿bien?

Luego pensé que las clases C y D podían ser listas en si mismas, con el
resto  de  métodos  y tal que necesitasen. Pero no me ahorra demasiado
trabajo.

Mi  pregunta  es cómo hacer una lista que pueda contener tanto objetos
de  A  como de C. Así podría hacer un sólo tipo de nodo y un sólo tipo
de lista, con sus métodos disponibles tanto para C como para D.

Se me ocurren 2 opciones:
   -que  los  nodos  tengan  hueco para un puntero a un objeto de cada
   clase, y que vayan todos vacíos menos uno.
   -usar una estructura de tipo 'union' para los nodos... aunque no se
   si sabría hacer esto, la verdad :P
Supongo  que seria lo mismo que un árbol en el que cada hoja pudiera ser
de un tipo.
Seguramente  mi problema es mas de enfoque general que otra cosa, pero
bueno....

gracias!

Jorge





Más información sobre la lista de distribución Cconclase