 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Claudio Ens

Registrado: 18 Ago 2002Mensajes: 31Ubicación: Santigo, CHILE
|
Publicado: Mar 20 Ago, 2002 3:12 am Asunto: punteros a funciones? |
|
|
Hola a todos
tengo una duda sobre lo que son los punteros a funciones y en que casos existiría una utilidad de estas, si existe algún lugar donde encontar información, me gustaría saber donde encontarla.
Otra de las cosas que no entiendo es que significa esta asignación
TCustomEdit *edit = dynamic_cast<TCustomEdit*>(ActiveControl);
si me pueden explicar del signo = a la derecha se los agradecería mucho.
eso es todo...  _________________ __CMVM |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 21 Ago, 2002 10:29 am Asunto: |
|
|
Hola Claudio:
dynamic_cast es uno de los operadores de casting/moldeado de C++, aunque supongo que bastante gente lo desconoce ya que no formaba parte del estándar hace unos años y por tanto no aparece en ningún libro que no sea actual.
Y no es el único, además del dynamic_cast tenemos reinterpret_cast, const_cast y static_cast.
- Empezamos por el que tiene una equivalencia mas directa con C, reinterpret_cast, y que hace un moldeado "por la fuerza". Por ejemplo:
En C: tipo_variable1 variable1 = (tipo_variable1) variable2;
En C++: tipo_variable1 variable1 = reinterpret_cast<tipo_variable1> variable2;
- static_cast, hace un moldeado entre tipos similares. Por ejemplo:
float f = 25.5;
int i = static_cast<int>(f);
o
void *p = Form1;
TForm *pForm = static_cast<TForm*>(p);
- const_cast, "quita" por ejemplo la declaración const de un objeto:
const TLabel *objeto_constante;
// Esto nos daría error
TLabel *objeto_no_constante = objeto_constante;
// Esta es la forma correcta
TLabel *objeto_no_constante = const_cast<TLabel*>(objeto_constante);
- Y por ultimo, dynamic_cast que nos permite el moldeado entre clases similares, ya sea porque derivan de una misma base o porque coinciden con el tipo buscado. Se resuelve en tiempo de ejecución y si no puede hacer el modelado devuelve 0:
TObject *Sender = new TEdit(this);
TCustomEdit *Edit = dynamic_cast<TCustomEdit*>(Sender);
// Modelado correcto, *Edit contendria un puntero al objeto
// ya que *Sender apunta a un objeto descendiente de TCustomEdit
TObject *Sender = new TEdit(this);
TLabel *Label = dynamic_cast<TLabel*>(Sender);
// Modelado incorrecto, *Label contendria un puntero nulo (0)
// ya que *Sender apunta a un objeto que no tiene relacion con TLabel
No es la manera más "científica" de explicarlo, pero espero que se entienda algo.
Saludos:
_Leo |
|
| Volver arriba |
|
 |
joseluisbz Invitado
|
Publicado: Mie 28 Ago, 2002 6:31 pm Asunto: Siendo no puntuales... |
|
|
Hola,
La verdad no sé si te sirva....
Bueno no tengo una respuesta clara a tu pregunta, sin embargo puedo darte unas claves...
Busca en la yuda las funciones GetProcAddress, LoadLibrary y typedef.
Obviamente que estén en un solo archivo de implementación de C++.
Puede que te sirva....
Espera a que te suministre una ayuda luego de que llegue a la ciudad...
Suerte... |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|