Erros, bugs, perguntas - página 1109

 
mas desta forma também não comunica um erro

#define  MCR


int OnInit()
{
        EventSetTimer(10);
        return ( INIT_SUCCEEDED );
}

ifdef  MCR
        #define  NUM             1
#else
        #define  NUM             2
#enif //случайная ошибка

void OnTimer()
{
        EventKillTimer();
        Print( NUM );
}
 
Por isso
class A {
public:
        void f() {}
};

void OnStart()
{
        const A a;
        a.f(); //компилятор выдает ошибку

}
o compilador dá, justificadamente, um erro, mas desta forma
class A {
public:
        void f() {}
};

void OnStart()
{
        const A *a = new A();
        a.f(); //компилятор не выдает ошибку
	delete ( a );
}

não o faz. Qual é a diferença?
 

Porque é que um terminal MetaQuotes-Demo 910 no separador "News" tem uma coluna "Time" (Tempo)

e o mesmo num computador diferente não o faz?


E o menu "Categorias" é diferente. Os computadores são idênticos, OS=Windows 7. Os Conselheiros Especialistas não estão a funcionar. Nos terminais Brokerage 880 em computadores fisicamente diferentes, sendo todas as outras coisas iguais, a imagem é semelhante, excepto que os menus "Categorias" são os mesmos.

 
Erro de compilação.
class A {
public:
        void f( int z ) { a = z; }
        int a;
};

class B {
public:
        B() { a = new A(); }
        ~B() { delete( a ); }
        void g( int z ) const { a.f( z ); } //error: call non-const method for constant object
        A *a;
};

Porque é que existe um erro?

o próprio não-constante a.f( z ) não pode alterar o ponteiro B::a, apenas o objecto A para o qual aponta pode alterá-lo. Mas o objecto A não é um membro de B, pelo que não está sujeito a protecção contra alterações. Se substituir . por ->, tudo se compila em C++ sem erros. Se fosse declarado

class B {
public:
//...
        const A *a;
};
então sim - não só o ponteiro para o objecto não deve ser alterado, mas o próprio objecto não deve ser alterado e haveria um erro
 

Tente abrir o ficheiro anexo err1.mqh em MetaEditor=910

Assumir OS=Windows 7\32, que err1.mqh e err2.mqh existem e que a rota da err2.mqh na err1.mqh está correcta (ou estão na mesma pasta), e as seguintes definições do MetaEditor

Nem sequer consigo que abra. Excluí código supérfluo, deixei apenas a essência do problema - algumas linhas

Arquivos anexados:
Err1.mqh  1 kb
Err2.mqh  1 kb
 

O que se passa com este fio? A cada cinco minutos o fórum mostra que há novas mensagens neste tópico - mas quando se entra no fórum, verifica-se que não há nada aqui.

P.S. Pare infinitamente de fazer pequenas edições aos seus postos para trazer o tópico para o topo.

 

O que é esta edição da revista do futuro?

futuro

 
barabashkakvn:

O que é esta edição da revista do futuro?


bem... o portal foi encerrado... não há mais problemas para essa data... (((

para mim de qualquer maneira.

 
E quando é que o repositório será ligado ao MetaEditor4?
 
barabashkakvn:
Quando é que o repositório será ligado ao MetaEditor4?
Já está ligado.