Fehler, Irrtümer, Fragen - Seite 1298

 

Syntaxfehler

struct S {};
class A {
        int S() { return 1; }
        int f() { return S(); } //syntax error, если нет уточнения A::S() //а обязательно ли оно ???
};
aber auf diese Weise:
struct S {};
class A {
        void S() {}
        void f() { S(); }
};
OK, der Compiler versteht also, dass A::S() impliziert ist und nicht explizit angegeben werden muss
 

Liebe Experten, wie implementiere ich die Funktion"Anwenden auf: ..." im Custom MA Indikator (im Anhang) ? " ?

wie im Standardindikator Gleitender Durchschnitt -"Anwenden auf: Daten des ersten Indikators".

Ich habe diese Frage in Foren gestellt, niemand weiß oder sagt, dass diese Möglichkeit in MQL nicht verfügbar ist.

Und eine Frage an die Entwickler - warum sind die Codes der eingebauten Standardindikatoren geschlossen und können nicht geändert werden?

Dateien:
MAchannel.mq4  7 kb
 
Kompilierungsfehler: Konstante kann nicht geändert werden
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
};

ein Zeiger kann einem Zeiger nicht zugewiesen werden, wenn der Zeiger als (const A *) deklariert und Mitglied einer Klasse ist

aber wenn es nur ein Klassenmitglied ist, dann gut

class A {};
class C { public:
        const A *a;
        void f( const A *aa ) { this.a = aa; } //нормально
};
 
Fehler bei der Ausführung
#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();
}
 

Ich möchte den vorherigen Beitrag mit einem eher seltenen Fall eines expliziten Konstruktoraufrufs ergänzen

#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();
}
 
Es wäre wünschenswert, die Möglichkeit von Leerzeichen und Tabulatoren zwischen # und define, ifdef, ifndef, endif, else, undef hinzuzufügen
#ifdef  MACRO
#        define MACRO1
#else
#        define MACRO2
#endif
Wenn die Bedingungen komplex sind, ist es viel einfacher, sie mit Einrückung zu lesen
 

Nach #define sind manchmal Kommentare möglich

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

Nach #define sind manchmal Kommentare möglich

Danke für die Nachfrage, wir werden uns darum kümmern.
 

Icons haben deutlich an Klarheit verloren

Wurde 1060 gebaut

Wurde Gebäude 1100

Muss ich die Größe auf Kosten der Klarheit erhöhen?

 
A100:

Icons haben deutlich an Klarheit verloren

Wurde 1060 gebaut

Wurde Gebäude 1100

Welchen Bildschirm verwenden Sie? Welche Auflösung? Wie viel Prozent Textgröße ist in den Einstellungen eingestellt?