Informe se esse é o comportamento correto ou não, em que a sequência de inicialização dos campos de um objeto de estrutura/classe depende da disposição mútua dos campos e não das entradas após o construtor?
struct A
{
int Count;
A() : Count(0) {}
};
struct B : public A
{
int i, j; // Единственная строка, отличающая от C.
B() : i(this.Count++), j(this.Count++) {}
};
struct C : public A
{
int j, i; // Единственная строка, отличающая от B.
C() : i(this.Count++), j(this.Count++) {}
};
voidOnStart()
{
B b;
Print(b.i); // 0Print(b.j); // 1
C c;
Print(c.i); // 1Print(c.j); // 0
}
A expectativa era inicializar da esquerda para a direita, conforme especificado no construtor.
C() : i(this.Count++), j(this.Count++) {}
Porém, descobriu-se que a inicialização vai de cima para baixo por campos. E a sequência especificada de inicialização após o construtor não é importante. Isso está correto?
fxsaber #: Por favor, informe se esse é o comportamento correto ou não, em que a sequência de inicialização dos campos de um objeto de estrutura/classe depende da disposição mútua dos campos e não das entradas após o construtor?
A expectativa era inicializar da esquerda para a direita, conforme especificado no construtor.
Porém, descobriu-se que a inicialização vai de cima para baixo por campos. E a sequência especificada de inicialização após o construtor não é importante. Isso está correto?
Por que os desenvolvedores escrevem uma ajuda tão detalhada se ninguém a lê? Sugiro simplificar a ajuda em uma frase: Pergunte no fórum - eles o ajudarão!
Por que os desenvolvedores escrevem uma ajuda tão detalhada se ninguém a lê? Proponho simplificar a ajuda em uma frase: Pergunte no fórum - eles o ajudarão!
Quando o esquema de encontrar a resposta para uma pergunta na ajuda estiver claro, recorrerei à ajuda do fórum com menos frequência.
Quando eu entender o esquema de encontrar a resposta para a pergunta na ajuda, usarei o fórum com menos frequência.
Em "Tipos de dados" -> "Estruturas e classes".
Na lista de inicialização, os membros podem estar em qualquer ordem, mas todos os membros da classe serão inicializados de acordo com a ordem de sua declaração.
Em "Data Types" (Tipos de dados) -> "Structures and Classes" (Estruturas e classes)
Na lista de inicialização, os membros podem estar em qualquer ordem, mas todos os membros da classe serão inicializados de acordo com a ordem em que forem declarados.
Obrigado. Infelizmente, nem sempre fica claro onde e como procurar.
Encontrei uma coisa muito desagradável no trabalho do indicador (MT5 e MT4). Os eventos bloqueiam o trabalho do cronômetro. Não existe tal coisa no Expert Advisor. Mais uma vez, estou convencido de que não faz sentido usar indicadores em que é necessário um trabalho estável do cronômetro. Isso é especialmente verdadeiro para interfaces responsivas.
Aqui está um indicador que demonstra esse problema, em que o cronômetro é definido para 20 milissegundos e o tempo entre os eventos do cronômetro é exibido se exceder 100 milissegundos.
Esse é um resultado interessante.
É estranho que ainda não tenha sido corrigido:
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bugs, bugs, perguntas
A100, 2020.08.01 05:42
Erro durante a execução:Result: OnStart::unnamed#00000216656562DC80::f<ulong>
Esperado: OnStart::f<ulong>
Limitação do compilador.
Esse é um defeito óbvio - acho que o compilador já deveria chamar uma equipe médica para esse tipo de código
É hipoteticamente possível imaginar parênteses em macros aninhadas em tal quantidade, mas não colchetes.A expectativa era inicializar da esquerda para a direita, conforme especificado no construtor.
Porém, descobriu-se que a inicialização vai de cima para baixo por campos. E a sequência especificada de inicialização após o construtor não é importante. Isso está correto?
Por favor, informe se esse é o comportamento correto ou não, em que a sequência de inicialização dos campos de um objeto de estrutura/classe depende da disposição mútua dos campos e não das entradas após o construtor?
A expectativa era inicializar da esquerda para a direita, conforme especificado no construtor.
Porém, descobriu-se que a inicialização vai de cima para baixo por campos. E a sequência especificada de inicialização após o construtor não é importante. Isso está correto?
Por que os desenvolvedores escrevem uma ajuda tão detalhada se ninguém a lê? Sugiro simplificar a ajuda em uma frase: Pergunte no fórum - eles o ajudarão!
Por que os desenvolvedores escrevem uma ajuda tão detalhada se ninguém a lê? Proponho simplificar a ajuda em uma frase: Pergunte no fórum - eles o ajudarão!
Quando o esquema de encontrar a resposta para uma pergunta na ajuda estiver claro, recorrerei à ajuda do fórum com menos frequência.
Quando eu entender o esquema de encontrar a resposta para a pergunta na ajuda, usarei o fórum com menos frequência.
Obrigado. Infelizmente, nem sempre fica claro onde e como procurar.
Obrigado. Infelizmente, nem sempre é claro onde e como procurar.
Encontrei uma coisa muito desagradável no trabalho do indicador (MT5 e MT4).
Os eventos bloqueiam o trabalho do cronômetro.
Não existe tal coisa no Expert Advisor.
Mais uma vez, estou convencido de que não faz sentido usar indicadores em que é necessário um trabalho estável do cronômetro. Isso é especialmente verdadeiro para interfaces responsivas.
Aqui está um indicador que demonstra esse problema, em que o cronômetro é definido para 20 milissegundos e o tempo entre os eventos do cronômetro é exibido se exceder 100 milissegundos.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Nova versão do MetaTrader 5 build 3490: versão móvel do terminal web e novos métodos de matriz em MQL5
Ilyas, 2022.10.18 10:12 AM
Pensando em adicionar classe/estrutura para objetos