Erros, bugs, perguntas - página 1201
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
Um erro no funcionamento das funções virtuais
Resultado: A::f(), deve ser B::f()
Ajude a instalar o META TRADER 4 em OS MAVERICKS, DOWNLOADED ALL PROGRAMS, PLAY ON MAC, ALL NEW, ANYTHING GIVES ERROR.
/*moderador: enviar o texto de erro como um ficheiro*/
2 - Antes da depuração.
3 - depois.
Talvez haja diferenças, eu não entendo nada)
Muito obrigado)
Erro de compilação
enquanto const não deve seguir a estática
Além disso, isto é uma protecção falsa, porque a estática é modificada pela função h() habitual e A::f() const nem sequer saberá
Um erro no funcionamento das funções virtuais
Resultado: A::f(), deve ser B::f()
Erro de compilação
enquanto const não deve seguir a estática
Além disso, isto é uma protecção falsa, porque a estática é modificada pela função h() habitual e A::f() const nem sequer saberá
Erro de compilação 358 em todos os casos de chamada h( A* a)
Justifica-se apenas em (3) e (4) porque não é h( const A* a)
Uma situação semelhante foi corrigida anteriormente https://www.mql5.com/ru/forum/1111/page1218#comment_1058402 mas a razão é provavelmente diferente, uma vez que a presença de const in void f() const influencia a ocorrência de erros e não havia lá funções de membro
Não compila na construção 976 (erro 358, mas difere dos erros anteriormente descritos na construção 975).
A razão pode ser que a construção 976 corrigiu o erro relacionado com o facto de que uma função normal chamada a partir de um método de classe const const poderia modificar os membros da classe que lhe foram passados por uma referência não const&. Mas aqui o ponteiro é um membro da classe e o seu valor é garantido não ser alterado ao chamar h( A* a), mas só pode ser alterado ao declarar h( A* &a )Não compila na construção 976 (erro 358, mas difere do anteriormente descrito na medida em que não ocorreram erros na construção 975)
A razão pode ser que a construção 976 corrigiu o erro relacionado com o facto de que uma função normal chamada a partir de um método de classe const const poderia modificar os membros da classe que lhe foram passados por uma referência não const&. Mas aqui o ponteiro é um membro da classe e o seu valor é garantido não ser alterado quando h( A* a) é chamado mas só pode ser alterado quando h( A* &a ) é declarado.