Fehler, Irrtümer, Fragen - Seite 1979

 
Andrey Barinov:
Ich danke Ihnen. Ich bin in der Dokumentation noch nie darauf gestoßen. Können Sie sie aufzeigen?
Er hat sich diese Regel selbst ausgedacht. In der Dokumentation steht:

Dementsprechend kann testfunc() nur (und ausschließlich) von cA:: Methoden aus aufgerufen werden -> in diesem Fall von cA::test()

 
A100:
Und haben Sie versucht, dieses Beispiel in C++ zu kompilieren - oder sind das nur allgemeine theoretische Überlegungen?

Haben Sie versucht, dem Link zu folgen? Sie können dort nicht nur kompilieren, sondern das Beispiel auch erfolgreich ausführen.

 
Stanislav Korotky:

Haben Sie versucht, dem Link zu folgen? Sie können dort nicht nur kompilieren, sondern das Beispiel auch erfolgreich ausführen.

Warum funktioniert ein solcher Code dann nicht?

class cA;
class cB;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class cA
  {
private:
   int               m_var;
   int               m_func(void){return(this.m_var);}
public:
   void test(cB &b)
     {
      this.m_var=b.m_var;      // (1) 'm_var' - private member access error
       
      this.m_var=b.m_func();   // (2)  => norm
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class cB : public cA
  {
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   cA A;
   cB B;

   A.test(&B);
//---
   return(INIT_SUCCEEDED);
  }


Ich sehe keinen Unterschied zwischen (1) und (2).

 
Stanislav Korotky:

Haben Sie versucht, dem Link zu folgen? Sie können dort nicht nur kompilieren, sondern das Beispiel auch erfolgreich ausführen.

Wir erörtern den oben angegebenen spezifischen Code. Wenn Sie es noch nicht ausprobiert haben, schreiben Sie einfach
 
Andrey Barinov:

Warum funktioniert dieser Code dann nicht?

Nun wird der 2. Theoretiker eine weitere Regel aufstellen, die nicht weniger vage ist als die erste

Ich schlage vor, den Code so weit wie möglich zu vereinfachen

 
A100:
Der obige spezifische Code wird derzeit diskutiert. Wenn Sie es nicht ausprobiert haben, schreiben Sie es einfach so

Der obige Code wurde für die C++-Syntax optimiert - im Zusammenhang mit der Diskussion über den Zugriff auf private Mitglieder sogar eins-zu-eins belassen - und dieser Code funktioniert. Dies war die Antwort auf die Frage, warum es in MQL funktioniert. Was brauchen Sie noch? Was soll ich sonst noch versuchen? Schreiben Sie selbst keinen Unsinn.

 
Stanislav Korotky:

Der obige Code wurde für die C++-Syntax optimiert - im Zusammenhang mit der Diskussion über den Zugriff auf private Mitglieder wurde er sogar eins-zu-eins belassen - und dieser Code funktioniert. Dies war die Antwort auf die Frage, warum es in MQL funktioniert. Was brauchen Sie noch? Was soll ich sonst noch versuchen? Schreiben Sie selbst keinen Unsinn.

Sie können es hier posten, und dann vergleichen wir, wie Sie es behoben haben (ich gehe nicht auf Links auf linken Seiten). Wenn Sie nicht wissen, wie man normal kommuniziert - (ich meine Bullshit), schreiben Sie nicht

 
Andrey Barinov:

Warum funktioniert dieser Code dann nicht?


Ich sehe keinen Unterschied zwischen (1) und (2).

Dies ist ein MQL-Fehler. Es funktioniert in C++. Schreiben Sie an den Service-Desk.

 
Stanislav Korotky:

Dies ist ein MQL-Fehler. In C++ funktioniert es. Wenden Sie sich an den Servicedesk.

Ich hab's. Danke.

Das zweite Beispiel ist jedoch interessant. cB weiß nichts über m_var und m_func und sie stehen ihm nicht zur Verfügung (d.h. sie können nicht von cB selbst aufgerufen werden), während sie von anderen Objekten aufgerufen werden können...
 
A100:

Stellen Sie ihn hier ein, und wir können dann vergleichen, wie Sie ihn optimiert haben (ich verfolge keine Links zu linken Seiten). Wenn Sie nicht wissen, wie man normal kommuniziert - (ich meine Bullshit), schreiben Sie nicht.

Seien Sie nicht unhöflich. Sie sind der erste, der hier abnormal kommuniziert.

Das gesamte Internet besteht aus linken Seiten. Wie können Sie es nutzen?

Diese spezielle Website und viele andere wie es erheblich vereinfachen das Leben der Programmierer (so dass sie zu testen, Snippets, http-Anfragen, überprüfen Sie die Mapping-Sites, usw.) - wie sie zu behandeln ist bis zu jeder - nicht wollen, nicht verwenden, aber nicht verwenden andere für diese Behauptung.