Fehler, Irrtümer, Fragen - Seite 2064

 
fxsaber:
Sprachfehler

Ein Fehler im Benutzercode ist kein Fehler: die Methode InitIndicators(CIndicator *) fehlt

 
A100:

Der Fehler im Benutzercode ist kein Fehler: die Methode InitIndicators(CIndicator *) fehlt

Der Buchstabe s fehlt, aber die Compiler-Meldung ist fehlerhaft, so dass der SD sie korrigiert hat.

 
fxsaber:

Die SDs haben die Aufgabe übernommen, das Problem zu lösen.

Man kann nicht etwas reparieren, das keinen Fehler enthält. Schauen Sie in der Datei <Indicator.mqh> nach - dort finden Sie die Klasse CIndicator ohne den Buchstaben s
 
A100:
Man kann nicht etwas reparieren, das keinen Fehler enthält. Schauen Sie in die Datei <Indicator.mqh> - dort gibt es die Klasse CIndicator ohne den Buchstaben s

Schreiben Sie der SR darüber. Sie behaupten (nicht ich), dass ein Fehler vorliegt und dieser korrigiert wird.

 
fxsaber:

Schreiben Sie der SR darüber. Sie behaupten (nicht ich), dass es einen Fehler gibt und dieser behoben wird.

Sie haben den Fehler ursprünglich angegeben - können Sie erklären, was er ist? Was ist daran falsch? Hier ist der vereinfachte Code:

class A1 {}; //Indicators
class A2 {}; //Indicator
class BB {
public:
    void f( A1 * ) {}
};
class B : public BB {
public:
    void f( A1 * ) {}
};
void OnStart()
{
    A2* a;
    B b;   
    b.f( a ); //error: 'f' - no one of the overloads can be applied to the function call
}
 
fxsaber:

Schreiben Sie der SR darüber. Sie behaupten (nicht ich), dass ein Fehler vorliegt und dieser korrigiert wird.

Die Fehlermeldung des Compilers ist nicht ganz korrekt.

Der Compiler behandelt die Überschreibung einer virtuellen Methode als Überladung, wir werden das beheben.
 
Ist dies die richtige Compiler-Meldung?
int Tmp = 2;
  
if (Tmp % 2) // expression not boolean
 

Ist es ein Fehler?

// Добавление элемента в конец произвольного массива
template <typename T>
void AddArrayElement( T &Array[], T Value, const int Reserve = 0 )
{
  const int Size = ArraySize(Array);
  
  ArrayResize(Array, Size + 1, Reserve);
  
  Array[Size] = Value;
}

class A {};
class B : public A {};

void OnStart()
{
  A* Array[];
  
  A* a = new B; // no problem
  AddArrayElement(Array, (A*)(new B)); // no problem
  
  AddArrayElement(Array, new B); // template parameter ambiguous, could be 'A*' or 'B*'
}
 

Wie erkenne ich den Namen einer Datei anhand ihres Handles?

 
Beschränkung der Sprache oder der Syntax?
struct A
{
  int i;
};

struct B
{
  const A a;
  
  B() : a({0}) // 'a' - constructor not defined
  {
    const A b = {0}; // no problem
  }  
};