FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
tipo al que apunta un pointer
Hola, a ver si podeis ayudarme con una duda relacionada con los pointers. Recientemente he empezado a mirarme el tema de la rtti y me he planteado la siguiente situación:
tengo un procedimiento o función con un parámetro de tipo pointer. La pregunta es si dentro de la rutina podría saber el tipo de dato al que apunta el pointer, ya que la unica informacion de la que dispongo es de la direccion de memoria donde se encuentra a lo que apunto(lo que quiera que sea). He mirado informacion sobre rtti pero no he visto ninguna documentacion relacionada por lo que me ha llevado a pensar que no se puede hacer y que en la situacion que expuse la rutina debe saber el tipo de dato que se le pasa a traves del pointer. Gracias de antemano por la respuesta. Un saludo |
#2
|
||||
|
||||
No sé qué relación haya entre un apuntador y rtti, al menos no a primera vista. Un apuntador normalmente contiene la información del tipo de datos al que apunta en su propio tipo de datos, esto es, un PInteger, por ejemplo, está declarado como
esto es, como un apuntador a Integer, de manera que, en tiempo de compilación, se sabe a qué apunta. No obstante, también hay apuntadores genéricos
que pueden apuntar a cualquier cosa que tu les digas (mediante un moldeo de tipos), y el compilador, por lo general, te "creerá". Por ejemplo:
Aquí estás diciendo al compilador, que P apunta a un TForm, e invocas su método Show. Obviamente, en la ejecución saltará algún error en caso de que le hayas "mentido" al compilador. Pero el punto aquí, es que ese tipo de apuntadores pueden apuntar a lo que sea, e incluso cambiar lo apuntado durante la ejecución, de manera que no creo que haya forma de saber el tipo de datos de lo que apuntan, aunque, desde luego, puedo estar equivocado. // Saludos |
#3
|
|||
|
|||
Hola, tal como te dice roman, en principio no se puede saber a que dato apunta el puntero, pues este no es mas que una direccion de memoria. Hace poco estuve trabajando bastante con la RTTI sobre un componente: si explicas un poco mejor para que quieres la funcion o procedimiento, quiza te pueda echar una mano. Saludos.
|
#4
|
||||
|
||||
Hombre no me quiero meter con el rtti, porque no lo conozco. Pero si estamos hablando de objetos, podríamos intentar algo como esto:
|
#5
|
||||
|
||||
Ven. Yo dije que podía equivocarme
Eso está muy bien Domingo, al menos si nos restringimos al ámbito de clases, sí que se puede saber el tipo de datos, tal como atinadamente indicas. // Saludos |
#6
|
|||
|
|||
Gracias por todas las explicaciones y sugerencias.
Estoy intentando hacer un procedimiento de asignacion para una clase. Idealmente este procedimiento debería tener dos parámetros: el nombre de la propiedad y el valor nuevo ya que estoy usando rtti. De momento lo estoy intentando hacer para tipos simples, es decir, la clase solamente tendrá propiedades cuyos tipos son simples y no otros objetos. El problema que veo es que el segunda parámetro puede ser de distinto tipo en funcion del tipo de propiedad a la cual queramos cambiar su valor. No veo claro sobrecargar el procedimiento y hacer tantos procedimientos como tipos de datos simples haya por lo que pense en usar pointers: paso el dato a traves de un puntero genérico y me despreocupo del tipo de dato de la propiedad que quiero cambiar. Ya dentro del procedimiento, averiguo a que tipo de dato apunta el pointer y hago el casting adecuado para hacer la asignación. Espero haberme explicado y gracias por la ayuda. Un saludo Salud y Delphi |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Google apunta a una página de mi sitio que ya no existe | Io | HTML, Javascript y otros | 7 | 01-10-2007 01:00:11 |
A quien apunta el parametro | jzginez | Conexión con bases de datos | 3 | 28-08-2006 16:41:19 |
Variables Tipo Pointer | omar_e_rc | Varios | 4 | 24-03-2005 18:51:34 |
Una variable que apunta a dos objetos | mlara | OOP | 5 | 10-12-2004 04:53:41 |
1 Gb de correo gratuito: Spymac, otro que se apunta al carro ... | kinobi | Noticias | 3 | 19-04-2004 17:22:50 |
|