[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