Errori, bug, domande - pagina 1736
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Se qualcuno è interessato, la risposta di Servicedesk:
Sono molto interessato! Si prega di spiegare la risposta del Service Desk con un esempio.
& == GetPointer(). * - non è cambiato nulla.
Sono molto interessato! Si prega di spiegare la risposta del Service Desk con un esempio.
& == GetPointer(). * - non è cambiato nulla.
se qualcuno è interessato, la risposta è servicedesk:
A proposito, l'altro giorno ho inviato loro una proposta sull'introduzione di puntatori a qualsiasi tipo di dati. E questa ridicola restrizione è già fastidiosa.
sarebbe bello introdurre l'overloading dell'operatore *, perché senza di esso non possiamo realizzare l'identità con STL, inoltre sarebbe bello introdurre typedef in pieno, non solo su calback`i
Che tipo di esempio volete?
Cosa vuoi da * e &. Qualcosa di semplice ma illustrativo. Per vedere la convenienza.
Quello che voglio l'ho già scritto sopra.
Potete inventare voi stessi un esempio con l'operatore '&' dove usate GetPointer(...), è essenzialmente una forma breve
L'esempio con l'operatore '*' - non so se ti aiuta a capire:
{
int m_value;
public:
Iterator(const int val) : m_value(val) { }
int operator*() { return m_value; }
};
int main(int argc, char **argv) {
Iterator *_it = new Iterator(5);
int _val = **_it;
//---
return 0;
}
funziona in C++, ma in MQL dovrete fare un geter per ottenere m_value.
Aggiungi all'aiuto che ChartRedraw(MainChartID) non è adatto a ridisegnare OBJ_CHART. Il ChartRedraw(ObjChartID) è richiesto.
Pertanto, l'esempio nella Guida non è corretto.
Si prega di non limitare la scala a N <= 5 (dimensione dell'area sotto la barra = 2^N).
Questo è necessario (ed è diventato un espediente) per essere in grado di guardare la storia dei tick in modo più dettagliato.
{
public:
const int a;
A( int c = 0 ) : a(c) {}
virtual int f()
{
Print(__FUNCTION__);
return(this.a);
}
};
class B : public A
{
public:
const int b;
B( int c = 0 ) : A(c), b(this.f()){}
virtual int f()
{
Print(__FUNCTION__);
return(this.a);
}
};
void OnStart()
{
B b;
A* a = new B;
delete a;
}
Risultato
2016.10.18 09:35:01.981 Test14 (GBPUSD,M1) B::f
Qual è la ragione dell'uscita di B::F e non di A::f? Lo script è scritto in modo tale che f è chiamato PRIMA che il corpo del costruttore sia eseguito (in grassetto). Ma in quel momento il costruttore della classe base A è già stato chiamato. Ecco perché this.f() sembra riferirsi esattamente alla classe base prima che il costruttore B sia chiamato. Per favore, spiega dove sta l'errore di ragionamento/previsione.