Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Não sei :) no nosso escritório para códigos escritos como
no mínimo, eles serão repreendidos, e com razão, imho.
Mais uma vez, este é um tipo complexo que requer uma inicialização correcta na criação, se a corda precisa de ser inicializada - é um bug de MT5(4), com certeza.
Talvez o tamanho das matrizes deva ser zerado imediatamente após a criação?
Não sei :) Na nossa empresa, eles receberão uma multa por escrever código como
No mínimo, será repreendido, e com razão, penso eu.
Antes de poder utilizar uma variável, deve atribuir-lhe um valor (inicializá-la explicitamente). Ou não concorda?
A inicialização explícita não implica a sua necessidade no momento da declaração. Mas se o valor da variável não inicializada for depois utilizado em alguns cálculos, as consequências são imprevisíveis.
Você assusta-me, Rashid, com todo o respeito.
Uma classe tem um construtor, que executa a inicialização inicial do objecto e incluindo a definição do valor por defeito, se for lógico.
Se a inicialização não acontecer, deve haver uma forma de saber se o objecto se encontra num estado adequado. Com uma corda faz muito mais sentido definir um valor por defeito.
Tal notação é paranóia, uma pessoa paranóica não pode escrever um código normal a priori.
Então as cordas não são inicializadas?
Então as cordas não são inicializadas?
Você assusta-me, Rashid, com todo o respeito.
Uma classe tem um construtor, que é onde ocorre a inicialização do objecto e inclui a definição de um valor por defeito, se isso for lógico.
Se a inicialização não acontecer, deve haver uma forma de saber se o objecto se encontra num estado adequado. Com uma corda faz muito mais sentido definir um valor por defeito.
Tal notação é paranóia, uma pessoa paranóica não pode escrever um código normal a priori.
Então as cordas não são rubricadas?
Leia a ajuda - https://www.mql5.com/ru/docs/basis/types/classes:
Se uma estrutura contém variáveis de tipo string e/ou um objecto de matriz dinâmica , o compilador atribui um construtor implícito a tal estrutura, na qual todos os membros da estrutura de tipostringsão zerados e uma inicialização correcta é feita para o objecto de matriz dinâmica.
...
Construtores e destruidores
Um construtor é uma função especial que é chamada automaticamente quando se cria um objecto de estrutura ou uma classe, e é normalmente utilizada para inicializar membros da classe. Na discussão seguinte falaremos apenas das aulas, o acima exposto também se aplica às estruturas, salvo indicação em contrário. O nome do construtor deve coincidir com o nome da classe. O construtor não tem tipo de retorno (pode especificar o tipo vazio).
Certos membros da classe - cordas, matrizes dinâmicas e objectos que requerem inicialização - serão inicializados de qualquer forma, independentemente da presença de um construtor.
Isso é uma chatice... Pelo menos eu saberei.
Será NULL também em estruturas?
Isso é uma chatice... Bem, pelo menos saberei.
Será NULL também em estruturas?
Basta comparar com NULL e você mesmo saberá tudo - Digite Nulo e constante NULL:
A variável constante predefinida NULL é de tipo nulo. Pode ser atribuída a variáveis de qualquer outro tipo fundamental sem conversão. Também é permitido comparar variáveis de tipos fundamentais com oNULL.
Exemplo:
//--- se uma cadeia não for inicializada, atribuir-lhe o nosso valor pré-definido
if(some_string==NULL) some_string="empty";
O NULLtambém pode ser comparado a apontadores para objectos criados utilizando o novo operador.
Antes de uma variável poder ser utilizada, deve ser-lhe atribuído um valor (explicitamente inicializado). Ou não concorda?
A inicialização explícita não implica a sua necessidade no momento da sua declaração. Mas se o valor de uma variável não inicializada for subsequentemente utilizado em alguns cálculos, as consequências são imprevisíveis.
Por falar em aves.
E como irá o compilador responder? E responderá ao seguinte '=' - utilização de cessão ilegal
O compilador não estava dobrado - '=' - utilização de cessão ilegal.
A minha pergunta é - O que vai acontecer se o programador (neste caso, eu) não inicializar as variáveis antes de as utilizar (ele fá-lo da forma que o compilador requer e omite este momento no construtor)?
Tenho uma pergunta - O que acontece se o programador (neste caso eu) não se encarrega de inicializar as variáveis antes de as utilizar (fazendo-o conforme requerido pelo compilador e faltando este ponto no construtor)?
Parece uma pergunta de algum recém-chegado...
Bem, foi o que pensei na altura (foi há muito tempo, vem-me à cabeça), mas queria escrever um pedido no calor do momento. :)
Embora ainda não compreenda porque é que é proibido inicializar variáveis a nível de compilador.