[C con Clase] Lista como atributo de una Cola

Steven Davidson srd4121 en njit.edu
Mie Mar 23 04:50:37 CET 2011


Hola Yusmary,

On 3/22/2011 12:13 PM, YG wrote:
> Buenas Necesito Ayuda...
>
> Para simular el funcionamiento de un laboratorio clinico debo crear
> una Cola de orden de examen y esta Cola debe tener como atributos el
> codigo de la orden, el codigo del paciente y una lista de los
> diferentes examenes que este paciente va a realizarse.
>
> Tengo entendido que para referirme a una lista dentro de otra
> estructura se hace creando un puntero a la lista en esta otra
> estructura, este puntero seria quien guarde la direccion a la lista.
>

Si la lista existe fuera de la estructura/clase, y quieres referirte a 
ella desde dentro de la estructura/clase, entonces sí. Usando un puntero 
es justo lo que necesitas. Podrías optar por una referencia, pero es 
posible que no puedas, según las circunstancias.

[CORTE]

> Nota: Cargo la lista en un metodo separado y luego asigno la
> direccion de esa lista al puntero en el objeto de tipo OrdenExamen
> una vez creado mi objeto OrdenExamen y ya asignado al puntero la
> direccion de la lista es que guardo el objeto en la Cola, cuando
> intento imprimir la cola y la lista adjunta a cada objeto de la cola,
> la lista parece llegar vacia, se que la lista se carga porque la
> imprimo justo antes de guardarla en la cola
>
> Entonces de alguna forma estoy refiriendome mal a la lista..
>

Mencionas que haces la carga de la lista en otra función, pero no nos 
dices a qué clase pertenece. Supongo que será una función miembro de 
'OrdenExamen'. Si es así, en principio, no debería haber ningún 
problema, porque usas el miembro (atributo), 'P', directamente. Si no es 
así, asegúrate de que la lista sigue existiendo después de ser creada; 
irrelevantemente de si asignas su dirección de memoria a 'P' o no.

De todas maneras, deberías comprobar la dirección de memoria de la lista 
que se vaya a asignar a 'P'. También comprueba que tal lista no elimina 
sus nodos dinámicamente en alguna parte de tu programa, quedándose ésta 
vacía. Es posible que se invoque algún destructor de 'Lista<detExamen>' 
y por lo tanto tal objeto deja de existir, aunque previamente hayas 
asignado su dirección de memoria al otro objeto de 'OrdenExamen'.

> Todo este cuento taaaan largo :-D para preguntar: Como debo referirme
> a la lista que esta dentro de la cola para poder imprimirla y o hacer
> cualquier otra manipulacion en ella??
>

No importa cuan largo sea un correo-e, con tal de que expliques 
correctamente todas las dudas e inquietudes que tengas.


Espero que todo esto te sirva. Si no, entonces escribe algo de código 
para que podamos analizarlo y dar una solución específica.

Steven





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