Errores, fallos, preguntas - página 1298

 

error de sintaxis

struct S {};
class A {
        int S() { return 1; }
        int f() { return S(); } //syntax error, если нет уточнения A::S() //а обязательно ли оно ???
};
pero de esta manera:
struct S {};
class A {
        void S() {}
        void f() { S(); }
};
OK, así que el compilador entiende que A::S() está implícito y no tiene que ser declarado explícitamente
 

Estimados expertos, ¿cómo implementar la función"Aplicar a: ..." en el indicador MA personalizado (adjunto)? " ?

para que sea como en el indicador estándar de Media Móvil -"Aplicar a: Datos del primer indicador".

Hice esta pregunta en los foros, nadie sabe o dice que esta posibilidad no está disponible en MQL.

Y una pregunta a los desarrolladores: ¿por qué los códigos de los indicadores estándar incorporados están cerrados y no se pueden modificar?

Archivos adjuntos:
MAchannel.mq4  7 kb
 
Error de compilación: no se puede modificar la constante
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
};

no se puede asignar un puntero a un puntero si éste se declara como (const A *) y es miembro de una clase

pero si es sólo un miembro de la clase, entonces bien

class A {};
class C { public:
        const A *a;
        void f( const A *aa ) { this.a = aa; } //нормально
};
 
Error de ejecución
#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();
}
 

Completaré el post anterior con un caso bastante raro de una llamada explícita al constructor

#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();
}
 
Sería deseable añadir la posibilidad de espacios y tabulaciones entre # y define, ifdef, ifndef, endif, else, undef
#ifdef  MACRO
#        define MACRO1
#else
#        define MACRO2
#endif
Si las condiciones son complejas, es mucho más fácil leerlas con sangría
 

Después de #define a veces es posible hacer comentarios

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

Después de #define a veces es posible hacer comentarios

Gracias por preguntar, nos ocuparemos de ello
 

Los iconos han perdido significativamente su claridad

Fue construido 1060

Se convirtió en la construcción 1100

¿Debo aumentar el tamaño a costa de la claridad?

 
A100:

Los iconos han perdido significativamente su claridad

Solía ser la construcción 1060

Se convirtió en la construcción 1100

¿Qué pantalla tienes? ¿Qué resolución? ¿Qué % de tamaño de texto está configurado en los ajustes?