
pasar tipo como parametro
Publicado por ptr (1 intervención) el 31/07/2015 01:13:35
Hola, necesito saber como se hace para pasar un tipo (TYPE) como parámetro.
A modo de ejemplo, dejo el pseudocódigo.
Primero defino un par de registros nodoA y nodoB con sus tipos y los respectivos ptr para crearlos dinámicamente.
type
SIN USAR OBJETOS - SIN USAR OBJETOS - SIN USAR OBJETOS:
------------------------------------------------------------------------------------------
Lo que pretendo es hacer un creador genérico de instancias usando new() de Pascal, donde necesito conocer el tipo del registro para hacer el cast y acceder a los campos.
Sería más o menos así:
procedure crearNodo(var p:pointer, tipoNodo:TYPE?????); << cómo pasar tipo o referencia de tipo ???
begin
¿Cómo se hace para pasarle a tipoNodo un valor que es un tipo, o la referencia de un tipo?
Gracias por tu molestia.
A modo de ejemplo, dejo el pseudocódigo.
Primero defino un par de registros nodoA y nodoB con sus tipos y los respectivos ptr para crearlos dinámicamente.
type
ptrNodoA = ^nodoA;
nodoA = record
nodoA = record
datoInt: integer;
datochar: char;
end;datochar: char;
ptrNodoB = ^nodoB;
nodoB = record
nodoB = record
datoInt: integer;
datochar: char;
end;datochar: char;
SIN USAR OBJETOS - SIN USAR OBJETOS - SIN USAR OBJETOS:
------------------------------------------------------------------------------------------
Lo que pretendo es hacer un creador genérico de instancias usando new() de Pascal, donde necesito conocer el tipo del registro para hacer el cast y acceder a los campos.
Sería más o menos así:
procedure crearNodo(var p:pointer, tipoNodo:TYPE?????); << cómo pasar tipo o referencia de tipo ???
begin
new(tipoNodo(p));
tipoNodo(p).datoint := 0;
tipoNodo(p).datochar := 'x';
end;tipoNodo(p).datoint := 0;
tipoNodo(p).datochar := 'x';
¿Cómo se hace para pasarle a tipoNodo un valor que es un tipo, o la referencia de un tipo?
Gracias por tu molestia.
Valora esta pregunta


0