Errori, bug, domande - pagina 2065

 
Situazione comica
class B;

class A
{
protected:  
  int i;

public:  
  void operator =( const B* Value )
  {    
    this.i = Value.i;       // 'i' - protected member access error
    
    // А так можно!
    this.i = ((A*)Value).i; // и нет ошибки: cannot convert from const pointer to nonconst pointer    
  }
};

class B : public A {};


Ho pensato che la situazione sarebbe stata la stessa in entrambi i casi. Ma no!

 
Si può fare solo all'interno della classe A. Per me va bene.
 

fxsaber:

Come si fa a sapere il nome di un file dal suo manico?

Per quanto mi ricordo, non c'è modo
 
Комбинатор:
Si può fare solo all'interno della classe A. A me sembra che vada bene.

errore

    this.i = Value.i;       // 'i' - protected member access error

è già stato corretto, si prega di attendere la nuova build.

 

ошибка

è già stato corretto, si prega di attendere la nuova build.

Loro lo sanno meglio. un errore è un errore
 

MetaEditor aggiunge un punto al nome del file

Sequenza delle operazioni:

  • In Explorer create un documento di testo Test.txt
  • Aprirlo in MetaEditor tramite File/Open
  • Poi seleziona File/Salva con nome...


Di conseguenza il nome del file sarà Test2..txt invece di Test2.txt

Notepad, a parità di altre condizioni, non aggiunge punti extra al nome del file
 

fxsaber:

è già stato corretto, si prega di attendere la nuova build.

Dobbiamo vedere come esattamente è fissato perché in un caso simile il compilatore Microsoft richiede per un motivo di prendere l'implementazione del metodo (in questo caso l'operatore =) fuori dalla classe

https://www.mql5.com/ru/forum/1111/page2001#comment_5679732

https://www.mql5.com/ru/forum/1111/page2001#comment_5680465

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.08.29
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

Questo sembra essere il comportamento sbagliato per la lingua, poiché limita le possibilità.

struct A {};

class B
{
public:
  const A a;
  
  B( const A &in ) : a(in) // 'a' - constructor not defined
  {
  }
};


Ho bisogno di definire un campo const come struttura. Pensavo che l'operatore di copia avrebbe funzionato, ma il compilatore vuole invece un costruttore, perché la sintassi è simile. Ma è sbagliato.

 
Messaggio di errore errato
struct A
{
  const int i;
};

void OnStart()
{
  A a1, a2;
  
  a1 = a2; // '=' - not allowed for objects with protected members or inheritance
}
 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

fxsaber, 2017.05.19 22:35

TimeTradeServer può restituire ogni sorta di assurdità. Per esempio, un valore inferiore a TimeCurrent. Questo annulla completamente la sua applicazione pratica.

Se ho capito bene l'idea, il TimeTradeServer deve calcolare il tempo trascorso dopo aver ricevuto TimeCurrent e aggiungere questa differenza, una sorta di emulazione dei valori futuri di TimeCurrent.

Ora, avendo eseguito l'Expert Advisor

#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnInit()
{
  EventSetTimer(1);
}

void OnTimer()
{
  Comment(TOSTRING(TimeTradeServer()) + TOSTRING(TimeCurrent()));
}

si può vedere qualsiasi sciocchezza.

Notate le date.


Questo è il modo in cui TimeTradeServer restituisce l'ora locale. Ancora una volta, si prega di correggere il comportamento corretto.