Erros, bugs, perguntas - página 1874
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Se tiver a certeza de que o construtor deve ser privado, não há outra forma.
Um ponteiro inteligente é um objecto que contém um simples ponteiro e assegura que é removido a tempo.
Esta é a opção mais simples.
Existem apontadores inteligentes mais complexos.
Está muito bem escrito sobre eles neste livro: https://rsdn.org/res/book/cpp/cpp_real_programmers.xml
De facto, é lógico que não funciona. Não se pode fazer com que o destruidor de um ponteiro inteligente seja chamado antes do destruidor de classes.
Em vez de especificar o erro e onde ele ocorre, o compilador dá um erro interno não especificado #112
Obrigado! Tentei variantes diferentes, mas não funcionam.
Na verdade, é lógico que não funciona. Não se pode fazer com que o destruidor de um ponteiro inteligente seja chamado antes do destruidor de classes.
Tente da seguinte forma:
Não sei o que está a fazer, mas em MQL tornar o construtor privado faz sentido apenas para o singleton.
Tente desta forma:
Obrigado pelo exemplo detalhado! Infelizmente, não tem um construtor fechado. Não funciona assim com um fechado, claro.
O que eu preciso é que exista um objecto que esteja escondido de todos. Ao mesmo tempo, nenhum outro objecto deste tipo poderia ser criado de forma alguma.
para enviar isto para o registo de execução?
E é correcto que o __FUNCSIG__ do construtor/destrutor dá um tipo de vazio?
Tente desta forma:
Preciso de ter um objecto que esteja escondido de todos. Ao mesmo tempo, outro objecto deste tipo não poderia ser criado de forma alguma.
É assim que é chamado:"Singleton".
Porque é que diz que não é adequado para si?
Aqui está um exemplo de um singleton.
É correcto neste caso
para enviar isto para o registo de execução?
E é correcto que o __FUNCSIG__ do construtor/destrutor dá um tipo de vazio?
Nunca faça
É correcto enviar isto para o registo de execução em tal caso?
E é correcto que o __FUNCSIG__ do construtor/destrutor produz tipo void-type?
Sim, é.
É assim que é chamado:"Singleton".
Porque diz que não lhe convém?
Aqui está um exemplo de um singleton.
Muito obrigado, funciona!
Mas continua a ser um mistério.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2017.04.25 10:34
Porque é que o destruidor de ponteiro inteligente é chamado antes do destruidor de classes na sua versão e o oposto na minha (mesmo que o construtor seja público)?