Erros, bugs, perguntas - página 1298

 

erro de sintaxe

struct S {};
class A {
        int S() { return 1; }
        int f() { return S(); } //syntax error, если нет уточнения A::S() //а обязательно ли оно ???
};
mas por aqui:
struct S {};
class A {
        void S() {}
        void f() { S(); }
};
OK, então o compilador compreende que A::S() está implícito e não tem de ser explicitamente declarado
 

Caros peritos, como implementar a função"Aplicar a: ..." no indicador personalizado de Mestrado (em anexo) ? " ?

ser como no indicador padrão de Média Móvel -"Aplicar a: First Indikator's Data".

Fiz esta pergunta em fóruns, ninguém sabe ou diz que esta possibilidade não foi implementada na MQL.

E uma pergunta aos programadores - porque é que os códigos dos indicadores padrão incorporados são fechados e não podem ser modificados?

Arquivos anexados:
MAchannel.mq4  7 kb
 
Erro de compilação: constante não pode ser modificada
class A {};
class B { public:
        const A *a; //здесь не - const A * const a
};
class C { public:
        B b;
        void f( const A *aa ) { this.b.a = aa; } //'a' - constant cannot be modified
};

não se pode atribuir um ponteiro a um ponteiro se o ponteiro for declarado como (const A *) e for um membro de uma classe

mas se for apenas um membro da classe, então tudo bem

class A {};
class C { public:
        const A *a;
        void f( const A *aa ) { this.a = aa; } //нормально
};
 
Erro de execução
#define  PRN             Print( __FUNCSIG__ )
class A { public:
        A()       { PRN; }
        void F1() { PRN; }
        void g()  { F1(); PRN; } //здесь пропускает вызов A::F1()
};
class F1 { public:
        F1()     { PRN; }
        ~F1()    { PRN; }
};
void OnStart()
{
        A a;
        a.g();
}
 

Completarei o post anterior com um caso bastante raro de uma chamada explícita do construtor

#define  PRN             Print( __FUNCSIG__ )
class A { public:
        A()       { PRN; }
        void g()  { F1::F1(); PRN; } //ошибка компиляции в то время как С++ вызывает безымянные конструктор и деструктор как если бы было ниже
        void f()  { F1 f1;    PRN; } //нормально
};
class F1 { public:
        F1()     { PRN; }
        ~F1()    { PRN; }
};
void OnStart()
{
        A a;
        a.g();
        a.f();
}
 
Seria desejável acrescentar a possibilidade de espaços e separadores entre # e definir, ifdef, ifndef, endif, else, undef
#ifdef  MACRO
#        define MACRO1
#else
#        define MACRO2
#endif
Se as condições são complexas, é muito mais fácil de ler com indentação
 

Depois de #define por vezes são possíveis comentários

#define /*MICRO*/ SOFT //ошибка компиляции
 
A100:

Depois de #define por vezes são possíveis comentários

Obrigado por perguntar, vamos lidar com isso
 

Os ícones perderam significativamente a sua clareza

Foi construído 1060

Tornou-se construir 1100

Preciso de aumentar o tamanho à custa da clareza?

 
A100:

Os ícones perderam significativamente a sua clareza

Foi construído 1060

Tornou-se construir 1100

Que ecrã tem? Que resolução ? Que tamanho de texto é definido nas definições ?