Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Como definir una class (https://www.clubdelphi.com/foros/showthread.php?t=52079)

Ziara 09-01-2008 20:17:10

Como definir una class
 
Hola a todos,

tengo que pasar un código en c++ al builder, la última parte del código en cuestión tiene una función (viene ya definida en una libreria) que uno de sus parámetros llama a otra función fuera del main, me explico con un ejemplo:

main()
{
...
FuncionDefinida(x,y,FuncionFueraMain);

return 0;
}

void FuncionFueraMain(...parametros...)
{
...
}

Port tanto, creo una class en un Unit, pero cómo lo defino?, Defino las dos funciones por separado en un mismo class y cómo paso la FuncionFueraMain como parámetro de FuncionDefinida que a la vez está dentro de una funcion?
Espero que lo que he escrito sea entendible..:confused:

gracias

Ñuño Martínez 10-01-2008 09:29:19

Pues yo no lo veo muy entendible.

En C++ las clases se definen así:
Código:

/* Archivo de cabecera "miclase.hpp" */
class ESTA_ES_LA_CLASE:public CLASE_BASE
{
public:
  void metodo (int parametro);
};
_________________________________________________________________________
/* Archivo fuente "miclase.cpp. */

#include "miclase.hpp"

void ESTA_ES_LA_CLASE::metodo (int parametro)
{
  /* Código */
}

Pasar funciones (en realidad, la dirección de una función) es algo más complejo, pero si no sabes de punteros mal lo vas a entender:
Código:

/* Definición del tipo "puntero a función". */
typedef void (*TIPO_FUNCION) (int);

/* Prototipo de la función que queremos pasar como parámetro. */
void funcion_a_pasar (int parametro);

/* Prototipo de la función que recibe. */
int funcion_que_recibe (TIPO_FUNCION fn);

/* Código ejecutable. */
int main (void)
{
  if (funcion_que_recibe (&funcion_a_pasar) == 0)
    throw "Error";
  return EXIT_SUCCESS;
}

¿Te sirve para aclarar dudas o te crea nuevas?

Ziara 11-01-2008 16:12:32

gracias, no lo tengo muy claro, lo miraré con más calma a ver que tal :)


La franja horaria es GMT +2. Ahora son las 10:33:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi