Cercando di applicare typedef a una funzione di classe si ottiene un errore il puntatore a questo tipo di funzione non è ancora supportato, provato le istruzioni di cui sopra, ma dal momento che non è mostrato per cosa e nessun commento, niente funziona.
Cercando di applicare typedef a una funzione di classe, l'errore puntatore a questo tipo di funzione non è ancora supportato, ho provato le istruzioni sopra ma dato che non è mostrato a cosa serve e nessun commento, non funziona nulla.
Cercando di applicare typedef a una funzione di classe si ottiene un errore il puntatore a questo tipo di funzione non è ancora supportato, provato le istruzioni di cui sopra, ma dal momento che non è mostrato per cosa e nessun commento, niente funziona.
La domanda sorge spontanea: se non puoi farlo, perché scrivi funzioni in una classe che prende funzioni? Inoltre, a volte è necessario implementare un'interfaccia e a volte non si sa quale funzione chiamare.
La domanda sorge spontanea: se non puoi farlo, perché scrivi funzioni in una classe che prende funzioni? Inoltre, a volte è necessario implementare un'interfaccia e a volte non si sa quale funzione chiamare.
Un puntatore a una funzione viene passato come parametro. Vedo che nessuno ha capito come fare questo con le classi. Inoltre non capisco ancora perché un puntatore a una classe dovrebbe essere restituito.
Qui ci sono dei campioni interessanti ma non sono legati alla mia domanda.
#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"); }
}
Ho anche visto qualcosa di simile nella guida, ma ho già chiuso questi siti perché mi fanno male le mani e ho del lavoro da fare.
Come si crea un puntatore aun metodo di classe?
Dovete creare un puntatore a una funzione_int eint_.
In mql4 viene descritto qualcosa sui puntatori e le classi qui(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) ma non ci sono commenti, non è chiaro a cosa serva e cosa faccia. Senza classi è facile dichiarare un puntatore usando typedef, ma voglio capire come funziona nelle classi.Come si crea un puntatore aun metodo di classe?
Dovete creare un puntatore a una funzione_int eint_.
In mql4 viene descritto qualcosa sui puntatori e le classi qui(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) ma non ci sono commenti, non è chiaro a cosa serva e cosa faccia. Senza classi è facile dichiarare un puntatore usando typedef, ma mi piacerebbe capire come funziona nelle classi.Non si può
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
https://www.mql5.com/ru/docs/basis/types/casting#dynamic_cast
Sbagliato. Una persona ha bisogno di un puntatore a un metodo di una classe, non di un cast a un erede.
non c'è altro - o stile procedurale senza controllo degli accessi o OOP con controllo degli accessi e dei tipi
ok, non importa, l'autore ha sempre problemi altamente specializzati ;)
Come si crea un puntatore aun metodo di classe?
Dovete creare un puntatore a una funzione_int eint_.
In mql4 viene descritto qualcosa sui puntatori e le classi qui(https://docs.mql4.com/ru/basis/types/this,https://docs.mql4.com/ru/basis/types/object_pointers,https://docs.mql4.com/ru/common/getpointer) ma non ci sono commenti, non è chiaro a cosa serve e cosa fa. Senza classi è facile dichiarare un puntatore usando typedef, ma mi piacerebbe capire come funziona nelle classi.Mi chiedo solo: come pensate di usarlo?
Perché avete bisogno di salvare un puntatore all'intera classe, ecco un esempiohttps://docs.mql4.com/ru/basis/types/this
Cosa farne dopo?
Non si può
La domanda sorge spontanea: se non puoi farlo, perché scrivi funzioni in una classe che prende funzioni? Inoltre, a volte è necessario implementare un'interfaccia e a volte non si sa quale funzione chiamare.
La domanda sorge spontanea: se non puoi farlo, perché scrivi funzioni in una classe che prende funzioni? Inoltre, a volte è necessario implementare un'interfaccia e a volte non si sa quale funzione chiamare.
Come funziona?
Come funziona?
Un puntatore a una funzione viene passato come parametro. Vedo che nessuno ha capito come fare questo con le classi. Inoltre non capisco ancora perché un puntatore a una classe dovrebbe essere restituito.
Qui ci sono dei campioni interessanti ma non sono legati alla mia domanda.
Ho anche visto qualcosa di simile nella guida, ma ho già chiuso questi siti perché mi fanno male le mani e ho del lavoro da fare.