Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2011
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
mmm me he liado tanto, con las simples llamadas a este que llama a este otro que no se si termine con más dudas que respuestas, pero la cosa creo que va por enviar algo que no existe, es decir en la creación de B aún no hay ninguna dirección que apunte a event_B (esta es la única explicación a la que doy fe), por ende la solución sería crear punteros del tipo al método que usas, pero que estén por encima de B o que se creen antes, después le asignas la función y así ya jala. La cuestión es que cosas ases en event_B, algo así.

Código:
class A
{
public:
    A( void( * vEvent )( A* , char ) ) : event_A( vEvent ){ };
    ~A( ){ };
    void( *publicEvent_A )( A* );

private:
    void( *event_A )( A*, char );
    void myProcedure( )
    {
        event_A( this, 'x' );
    }
};

typedef void( *Fun )( A * p1, char ca );
typedef void( *Fun2 )( A * a );
Fun aa;
Fun2 bb;

class B
{
public:
    B( )
    {
        myA = new A( aa );
        myA->publicEvent_A = bb;
    };
    ~B( );

private:
    A* myA;
    void myProcedure_B( A* sender )
    {
        sender = sender;
    };
};
En fin me lie así que este comentario también es un lio, ahora incluso no distingo la diferencia entre puntero o instancia jaja.

Pd. Estimado Ñuño Martínez desde la ignorancia pregunto, función no es lo mismo que método? Ambos tienen parámetros variables y retornos variables, siendo la única diferencia el paradigma de programación (estructurada u orientada a objetos, es decir solo palabras no funcionalidad), porque hasta donde yo he programado da lo mismo pasar una función X a un OnClick X.

Pd2. Sería interesante que alguien resolviera el hilo y dijera que está pasando ya que sí que no me funciona pero no le encuentro falla lógica.
Responder Con Cita
  #2  
Antiguo 13-04-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por _cero_ Ver Mensaje
Pd. Estimado Ñuño Martínez desde la ignorancia pregunto, función no es lo mismo que método? Ambos tienen parámetros variables y retornos variables, siendo la única diferencia el paradigma de programación (estructurada u orientada a objetos, es decir solo palabras no funcionalidad), porque hasta donde yo he programado da lo mismo pasar una función X a un OnClick X.
Te equivocas cuando dices que la única diferencia son "solo palabras no funcionalidad". Como ya he dicho, los métodos han de estar asociados a un objeto, por lo que sí hay una diferencia importantísima.

Según la definición más pura de la POO, los métodos implementan la respuesta a los mensajes que se envían a un objeto. La confusión quizá provenga en la forma en la que C++, Object Pascal y similares implementan los métodos, que lo hacen como "llamadas a función con parámetro implícito", this en un caso y SELF en el otro. Sin embargo lenguajes como Small-Talk u Objective C los métodos no se implementan como si fueran funciones por lo que la diferencia está más clara. Es más, en Objective C la nomenclatura es diferente para funciones y para métodos, mientras que en Small-Talk ni siquiera existen las funciones.

Para que veas, te pongo un ejemplo de método en Objective C:
Código:
- (int)method:(int)i
{
    return [self square_root:i];
}
Como ves es parecido pero no igual a una función, mientras que las funciones en este lenguaje son idénticas a las de C. De esta forma a un programador le resultará muy sencillo saber si lo que está viendo es o no un método.

Para que lo veas más claro, cuando escribimos esto en C++:
Código:
  UnObjeto.Metodo (Parametro, OtroParametro);
  ElObjeto->Metodo (Parametro, OtroParametro);
el compilador lo maneja como si fuera esto:
Código:
  ((*(UnObjeto.Metodo)) (&UnObjeto, Parametro, OtroParametro));
  ((*(ElObjeto->Metodo)) (ElObjeto, Parametro, OtroParametro));
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 13-04-2011 a las 10:35:19.
Responder Con Cita
  #3  
Antiguo 13-04-2011
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
llevo tanto tiempo programando en un solo lenguaje que a veces olvido que el mundo no está escrito solo en C++. Gracias por despejarme ahora entiendo más que un método es algo así como la representación de los mensajes enviados y recibidos a un objeto, y una función no tienen nada que ver con esto a pesar de que reciban o regresen punteros de objetos (o eso capte en este instante, en cualquier caso nunca está de más pasarme por google a redefinir algunos de mis conceptos), otra vez gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
parámetros en funciones RGB y HSL Norum Gráficos 5 12-02-2008 17:49:43
Establecer parametros determinados en funciones y procedimientos emeceuy Varios 8 03-09-2007 19:23:50
Funciones por parametros... omar_e_rc Varios 2 27-03-2005 23:12:27
Funciones y parámetros Fast Report sur-se Impresión 1 18-08-2004 12:38:44
Enviar estructuras como parametros a funciones Oracle SLAKE Conexión con bases de datos 0 02-10-2003 17:14:05


La franja horaria es GMT +2. Ahora son las 16:43:24.


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