Tratando de aplicar el typedef a una función de la clase obtiene un error puntero a este tipo de función no se admite todavía, trató de las instrucciones anteriores, pero ya que no se muestra por lo que y sin comentarios, nada funciona.
Intentando aplicar el typedef a una función de clase, el error de puntero a este tipo de función no está soportado todavía, intenté las instrucciones de arriba pero como no se muestra para qué sirve y no hay comentarios, nada funciona.
Tratando de aplicar el typedef a una función de la clase obtiene un error puntero a este tipo de función no se admite todavía, trató de las instrucciones anteriores, pero ya que no se muestra por lo que y sin comentarios, nada funciona.
La pregunta que surge es: si no puedes hacer eso, ¿por qué escribes funciones en una clase que toma funciones? Y además, a veces hay que implementar una interfaz y otras veces no se sabe a qué función llamar.
La pregunta que surge es: si no puedes hacer eso, ¿por qué escribes funciones en una clase que toma funciones? Y además, a veces hay que implementar una interfaz y otras veces no se sabe a qué función llamar.
Se pasa un puntero a una función como parámetro. Veo que nadie ha descubierto cómo hacer esto con las clases. Tampoco me queda claro por qué hay que devolver un puntero a una clase.
Aquí hay muestras interesantes pero no están relacionadas con mi pregunta.
#property strictclass CStrategy;
typedefbool (*SignalFn)(CStrategy*);
// Global function definitionsbool IsBuySignal(CStrategy*ptr) { return ptr.IsBuySignal(); }
bool IsSellSignal(CStrategy*ptr) { return ptr.IsSellSignal(); }
// Create an abstract base classclass CStrategy
{
public:
virtualbool IsBuySignal(void)=0;
virtualbool IsSellSignal(void)=0;
};
// Derived classclass Strat1 : public CStrategy
{
public:
// Implement the required functionsbool IsBuySignal(void) { returntrue;}
bool IsSellSignal(void) { returntrue;}
};
voidOnStart()
{
// instantiate a class
Strat1 strat1;
// Global functions work as expected
SignalFn ptrSignalFn; // pointer to a signal function
ptrSignalFn = IsBuySignal;
if ( ptrSignalFn(&strat1) ) { Print("Is Buy"); }
}
También he visto algo parecido en la guía, pero ya he cerrado esos sitios porque me duelen las manos y tengo trabajo.
¿Cómo puedo crear un puntero aun método de la clase?
Es necesario crear un puntero a una función_int eint_.
En mql4 se describe algo sobre punteros y clases aquí(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) pero no hay comentarios, no está claro para qué sirve y qué hace. Sin clases es fácil declarar un puntero usando typedef pero quiero entender cómo funciona en las clases.¿Cómo puedo crear un puntero aun método de la clase?
Es necesario crear un puntero a una función_int eint_.
En mql4 se describe algo sobre punteros y clases aquí(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) pero no hay comentarios, no está claro para qué sirve y qué hace. Sin clases es fácil declarar un puntero usando typedef, pero me gustaría entender cómo funciona en las clases.No se puede
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
No es así. Una persona necesita un puntero a un método de una clase, no un reparto a un heredero.
no hay otra, ya sea el estilo procedimental sin control de acceso o la POO con control de acceso y de tipos
ok, no importa, el autor siempre tiene problemas muy especializados ;)
¿Cómo puedo crear un puntero aun método de la clase?
Es necesario crear un puntero a una función_int eint_.
En mql4 se describe algo sobre punteros y clases aquí(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) pero no hay comentarios, no está claro para qué sirve y qué hace. Sin clases es fácil declarar un puntero usando typedef, pero me gustaría entender cómo funciona en las clases.Sólo me preguntaba: ¿cómo piensa utilizarlo?
Por qué necesitas guardar un puntero a toda la clase, aquí tienes un ejemplohttps://docs.mql4.com/ru/basis/types/this
¿Qué hacer después?
No se puede
La pregunta que surge es: si no puedes hacer eso, ¿por qué escribes funciones en una clase que toma funciones? Y además, a veces hay que implementar una interfaz y otras veces no se sabe a qué función llamar.
La pregunta que surge es: si no puedes hacer eso, ¿por qué escribes funciones en una clase que toma funciones? Y además, a veces hay que implementar una interfaz y otras veces no se sabe a qué función llamar.
¿Cómo funciona esto?
¿Cómo funciona?
Se pasa un puntero a una función como parámetro. Veo que nadie ha descubierto cómo hacer esto con las clases. Tampoco me queda claro por qué hay que devolver un puntero a una clase.
Aquí hay muestras interesantes pero no están relacionadas con mi pregunta.
También he visto algo parecido en la guía, pero ya he cerrado esos sitios porque me duelen las manos y tengo trabajo.