no puede cambiar el puntero, pero puede cambiar el objeto al que se refiere el puntero. Pues bien, en MQL5 no existen tales punteros que no puedan ser modificados. Por lo tanto, el modificador const siempre se refiere a los objetos a los que se refiere el puntero.
Entonces, ¿dónde crees que está el puntero constante aquí?
En los métodos f() y g() el puntero a se vuelve constante.
Pues bien, en MQL5 no existen tales punteros que no puedan ser modificados. Por lo tanto, el modificador const siempre se refiere a los objetos a los que se refiere el puntero
No debes hacer conclusiones tan categóricas sin tener suficiente conocimiento sobre el tema. MQL tiene punteros constantes y los declara de la misma manera que en C++.
No se deben hacer conclusiones tan categóricas sin un conocimiento suficiente del tema. Los punteros constantes en MQL existen y se declaran de la misma manera que en 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 );
}
Por otro lado, esto hubiera sido compatible con C++ - sólo la clase B "interfiere" allí - si la eliminas, compila sin errores. Por ello, su objetivo es comprobar
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
};
Usted cree que
no puede cambiar el puntero, pero puede cambiar el objeto al que se refiere el puntero. Pues bien, en MQL5 no existen tales punteros que no puedan ser modificados. Por lo tanto, el modificador const siempre se refiere a los objetos a los que se refiere el puntero.
Entonces, ¿dónde crees que está el puntero constante aquí?
En los métodos f() y g() el puntero a se vuelve constante.
Pues bien, en MQL5 no existen tales punteros que no puedan ser modificados. Por lo tanto, el modificador const siempre se refiere a los objetos a los que se refiere el puntero
No debes hacer conclusiones tan categóricas sin tener suficiente conocimiento sobre el tema. MQL tiene punteros constantes y los declara de la misma manera que en C++.
No se deben hacer conclusiones tan categóricas sin un conocimiento suficiente del tema. Los punteros constantes en MQL existen y se declaran de la misma manera que en C++.
Por lo que recuerdo de la explicación de los desarrolladores, la constancia se aplica tanto al objeto como al puntero.
Es decir, escribir const T* en MQL === const T* const en C++
Antes era así, quizás ahora sea diferente, pero lo dudo.
Error de compilación
Error de compilación
...
Debería haber sido así:
Debería haber sido así:
Error de compilación
Error de compilación