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
Então deve ser para que o papel de construtor de cópias seja desempenhado por um operador de tarefas sobrecarregado?
O ecrã exibe 1, ou seja, o construtor de cópias é executado.
Penso que é isto: "2) descomentar uma paragem com um operador de afectação sobrecarregado" não é suposto ajudar.
Não sei o que é correcto, mas o operador da tarefa na VS não desempenha o papel de construtor de cópias.
O ecrã exibe 1, ou seja, o construtor de cópias está a funcionar.
Penso que isto: "2) descomentar uma paragem com um operador de afectação sobrecarregado" não deve ajudar.
O construtor de cópias é executado aqui
não dentro da função fn().O construtor de cópias é realizado aqui
e não dentro da função fn().Nesta variante:
A linha "Assignment constructor is executed" não é produzida.E é assim que é deduzido:
WWer, se por analogia com a VS, for necessário olhar para a situação específica, dê um exemplo específico de cópia/atribuição. O que vai ser executado é decidido no local.Porque deve ser rubricado? É um exemplo de uma classe que tem um construtor precisamente para esse fim.
E como escrever um construtor de cópias correcto para este fim?
A sua função getCopy() que está a tentar devolver o objecto está escrita de forma bastante correcta. Depois de anular a atribuição já devolve um ponteiro, o erro evapora.
--
A confusão aqui pode ser causada pelo facto de a linguagem ter algum "backlash de sintaxe", associado à mesma representação sintáctica de acesso aos campos de um objecto estático e dinâmico (com um ponto em vez de uma seta, o que, a propósito, é realmente conveniente). Isto é muito comum, e pode, de certa forma, tornar menos nítida a distinção entre objectos e apontadores de objectos, o que por sua vez pode levar a algumas ilusões, tais como que algo pode ser atribuído a uma variável de objecto estática (ou automática). Longe disso, uma variável de objecto à esquerda de uma atribuição é sempre um ponteiro, se o construtor da cópia não estiver definido.
C++ constrói objecto q2 dentro da função fn() em troca, é por isso que o copy constructor funciona.
Na MQL5, o objecto é construído a partir do exterior, pelo que existem diferenças. Vamos eliminá-los.
Para aqueles que estão interessados: chama-se Return value optimization
Colegas, bom dia!
Pode dizer-me como posso obter valores de preços para diferentes instrumentos financeirosem sincronia? Refiro-me, por exemplo, aos preços de fecho de bares num determinado momento no passado, em diferentes instrumentos. A utilização da função CopyClose e a obtenção dos valores por índice de barras não é absolutamente correcta, porque pode haver algumas barras em falta para diferentes instrumentos. Tanto quanto me lembro, o mql4 tem a função BarShift por tempo, existe um análogo no mql5?
Se souber as horas, pode utilizar esta função.
Endereço por data de início e número de itens necessários
intCopyClose(
stringsímbolo_nome,// nome do símbolo
ENUM_TIMEFRAMESprazo,// período
data/horastart_time,// a partir do qualdata
intcount,// quantos copiamos
doubleclose_array[]// matriz para cópia dos preços de fecho
);
Se souber as horas, pode utilizar esta função.
Consultar a data de início e o número de artigos necessários
intCopyClose(
nome_símbolo de cadeia,// nome do símbolo
ENUM_TIMEFRAMESprazo,// período
data/horadeinício,//fora de que data
intcontagem,// quantos copiamos
doubleclose_array[]// matriz para cópia dos preços de fecho
);
Suponhamos que quero encontrar um rácio de fechar[i] EUR/USD e fechar[i] GBP/USD, mas se eu usar o índice i, as barras podem ser diferentes no tempo de qualquer maneira, porque há algumas barras em falta.
Por outras palavras, tenho de utilizar CopyClose(Symbol, 0, date_of_current_bar, 1, array) em ciclos para cada barra ?
Parece-me, que as barras de TF mais antigas raramente "desaparecem".
Outra variante é obter o tempo desta barra simultaneamente através de CopyTime().
E terceira opção (provavelmente a mais fácil) usar o CopyRates em estrutura de uma só vez.