kann den Zeiger nicht ändern, wohl aber das Objekt, auf das sich der Zeiger bezieht. Nun, in MQL5 gibt es keine solchen Zeiger, die nicht geändert werden können. Daher bezieht sich der Modifikator const immer auf die Objekte, auf die sich der Zeiger bezieht.
Was glauben Sie denn, wo hier der ständige Zeiger ist!
In den Methoden f() und g() wird der Zeiger a konstant.
Nun, in MQL5 gibt es keine solchen Zeiger, die nicht geändert werden können. Daher bezieht sich der Modifikator const immer auf die Objekte, auf die sich der Zeiger bezieht
Sie sollten solche kategorischen Schlussfolgerungen nicht ohne ausreichende Kenntnisse über das Thema ziehen. MQL hat konstante Zeiger und deklariert sie auf die gleiche Weise wie in C++.
Sie sollten solche kategorischen Schlussfolgerungen nicht ohne ausreichende Kenntnisse des Themas ziehen. Konstante Zeiger in MQL existieren und werden auf die gleiche Weise deklariert wie in C++.
template<typename T>
class A { public:
booloperator==( const A& ); //error: 'operator' - function must have a body
T t;
};
class B {
A<int> a;
};
template<typename T>
bool A::operator==( const A& ) { returnfalse; }
voidOnStart()
{
A<int> a, b;
Print( a == b );
}
Dies wäre andererseits mit C++ kompatibel gewesen - nur Klasse B "stört" dort - wenn man sie entfernt, kompiliert sie ohne Fehler. Aus diesem Grund zielt sie auf die Überprüfung
template<typename T> class A {};
template<typename T> class B {};
class C {
template<typename T>
void f( B<A<T> > * ) {}
B<A<int> > *b;
public:
void g() { f( b ); } //error: 'f' - cannot to apply function template
};
Sie glauben, dass
kann den Zeiger nicht ändern, wohl aber das Objekt, auf das sich der Zeiger bezieht. Nun, in MQL5 gibt es keine solchen Zeiger, die nicht geändert werden können. Daher bezieht sich der Modifikator const immer auf die Objekte, auf die sich der Zeiger bezieht.
Was glauben Sie denn, wo hier der ständige Zeiger ist!
In den Methoden f() und g() wird der Zeiger a konstant.
Nun, in MQL5 gibt es keine solchen Zeiger, die nicht geändert werden können. Daher bezieht sich der Modifikator const immer auf die Objekte, auf die sich der Zeiger bezieht
Sie sollten solche kategorischen Schlussfolgerungen nicht ohne ausreichende Kenntnisse über das Thema ziehen. MQL hat konstante Zeiger und deklariert sie auf die gleiche Weise wie in C++.
Sie sollten solche kategorischen Schlussfolgerungen nicht ohne ausreichende Kenntnisse des Themas ziehen. Konstante Zeiger in MQL existieren und werden auf die gleiche Weise deklariert wie in C++.
Soweit ich mich an die Erklärung der Entwickler erinnere, gilt die Konstante sowohl für Objekte als auch für Zeiger.
D.h. das Schreiben von const T* in MQL === const T* const in C++
Das war früher so, vielleicht ist es jetzt anders, aber ich bezweifle es.
Kompilierungsfehler
Kompilierungsfehler
...
Es hätte so sein sollen:
Es hätte so sein sollen:
Kompilierungsfehler
Kompilierungsfehler