Erros, bugs, perguntas - página 3062

 

É aqui que o compilador deve dar um erro:

class A
  {
public:
   int               aa;
  };
A a;

void OnStart()
  {
   a.aa=999999;
   A b=GetPointer(a);//Переменная b не является указателем
   Print(b.aa);
  }

O guião imprime noves.

 
Aliaksandr Hryshyn:

É aqui que o compilador deve dar um erro:

O guião imprime noves.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Nova versão do MetaTrader 5 build 2980: Notificações push sobre operações comerciais

A100, 2021.06.21 08:35

Na MQL, os apontadores não são na realidade apontadores (sem aritmética de endereços), mas sim referências

E se assim for, a conversão implícita deum ponteiro de referência para um objecto funciona

Em C++ pareceria o seguinte


#ifdef __cplusplus
#define GetPointer(a)   ((A&)(a))
void OnStart()
{
   a.aa=999999;
   A b = GetPointer(b);
   Print(b.aa);
}
#endif
 
A100 :

E uma vez que é este o caso, um ponteiro implícito para a conversão de objectos funciona

Em C++ seria parecido com isto:

Uma vez que é muito conhecedor do OOP. Posso pedir a vossa opinião sobre este assunto?

Bug: Const method + Copy constructor
Bug: Const method + Copy constructor
  • 2021.07.18
  • www.mql5.com
This code reproduces the bug: There are 2 workarounds for this code, you either remove the const qualifier from the method foo or create a temporar...
 
fxsaber:

Na máquina remota, isto só começou a acontecer após algum tempo. Antes disso, tudo estava a funcionar correctamente. Não me lembro de ter mudado nada no sistema operativo.

Lembro-me de algo semelhante. Provavelmente, teve algo a ver com a ligação RDP.

E a troca por janelas com Alt+Tab parecia ajudar.

 
Andrey Khatimlianskii:

Lembro-me de algo semelhante. Provavelmente, teve algo a ver com a ligação RDP.

E parecia ajudar a mudar por janelas com Alt+Tab.

Infelizmente, não ajudou. Até eu fechar o Alerta, o terminal ainda não está visível.

 
Alain Verleyen:

Uma vez que é muito conhecedor do OOP. Posso pedir a vossa opinião sobre o assunto?

Em C++ tudo se compila sem erros, em MQL sem const (3) - também se compila - significa que algures em MQL há um erro.

class C {
public:
    C()           { Print( 1 ); }  
    C( const C& ) { Print( 2 ); }
    C h()         { Print( 3 ); return C(); }    //(3) нормально
    C f() const   { Print( 4 ); return C(); }    //(4) ошибка при компиляции
    C g() const   { Print( 5 ); C c; return c; } //(5) замена (4)
};
void OnStart()
{
    C c;
    c.f();
}

Por outro lado - mesmo que (4) fizesse a compilação, a sequência de chamadas continuaria a ser diferente:

em MQL: 1-4-1-2

em C++: 1-4-1

por isso é mais correcto utilizar a variante (5) em qualquer caso

 
A100 :

Em C++ tudo se compila sem erros, em MQL sem const (3) - também se compila - significa que algures em MQL há um erro

Por outro lado, mesmo que (4) fizesse a compilação, a sequência de chamadas seria diferente:

em MQL: 1-4-1-2

em C++: 1-4-1

por isso é mais correcto utilizar a variante (5) em qualquer caso

Obrigado :-)
 

Raios, ainda não percebi, por isso digam-me, pessoas de boa vontade:

Para evitar que todos os ficheiros abertos no Metaeditor caiam no momento perfeito, o que tenho de fazer?

Metaeditor.ini com backup manual ou o quê? a sério.

Só que nem mesmo depois de fechar/abrir, mas mesmo ao ar livre, de repente tudo desaparece. A razão é pouco clara.

 
Aleksey Mavrin:

Raios, ainda não percebi, por isso digam-me, pessoas de boa vontade:

Para evitar que todos os ficheiros abertos no Metaeditor caiam no momento perfeito, o que tenho de fazer?

Metaeditor.ini com backup manual ou o quê? a sério.

Só que nem mesmo depois de fechar/abrir, mas mesmo ao ar livre, de repente tudo desaparece. A razão é pouco clara.

Eu não viro, utilizo-a como uma versão portátil.
 

Há um cliente. Eu fiz o seu trabalho. Ele queria voltar a trabalhar comigo. Criou um trabalho. Não conseguiu perceber ou faltava-lhe um passo em que precisava de anexar uma especificação.

Suprimido o trabalho. De acordo com as regras, só se pode criar um emprego. Não pode criar, quer criar outra conta. (Aconselhei-o a não o fazer, e escrevi que tentarei dirigir-me a mim próprio em apoio).

Ofereci-me para pagar adiantado não aqui, ao que recusei. Porque não é justo para o terceiro (MKL).

Por favor, dêem-lhe a oportunidade de criar um emprego aqui.

De alguma forma, isto não está certo. Há uma pessoa disposta a pagar pelo trabalho, há um artista que concorda em fazê-lo e a pagar uma comissão. O processo é interrompido.

https://www.mql5.com/en/users/mbende/feedbacks