![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
16/08/2006, 18:09
|
| | Fecha de Ingreso: abril-2006 Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 9 meses Puntos: 2 | |
Otra opcion es usar los punteros a void(void*)
como se hacien en Java antes de los generics.(Se usaba la clase Object).
en C para se puede simular usando los punteros a void.
claro tienes que implementar una interfas comun para tus estructuras, esto lo puedes hacer usando punteros a funcion.
ejemplo:
#define REVISTA 100;
#define LIBRO 200;
typedef struct
{
int tipo;
void(*HacerPrimero)(void*);
void(*HacerDespues)(void*);
}Libro;
typedef struct
{
int tipo;
void(*HacerPrimero)(void*);
void(*HAcerDespues)(void*);
}Revista;
esto te permitiria hacer cosas como;
void* objetos[2];
objetos[0] = malloc(sizeof(Libro));
objetos[1] = malloc(sizeof(Revista));
/*Hacer las asignaciones de funciones a los punteros.
y otra operacion ha hacer con un libro y una revista respectivamente.*/
/*y ya despues podemos hacer.*/
((Libro*)objetos[0])->HacerPrimero(objetos[0]);
((Revista*)objetos[1])->HacerPrimerp(objetos[1]);
en fin, que de esta forma podemos simular polimorfismo.
con un poco de dificultad.
Saludos. |