Errores, fallos, preguntas - página 1736

 
coderex:

si alguien está interesado, la respuesta de servicedesk:

На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalue

Estoy muy interesado. Por favor, explique la respuesta del Service Desk con un ejemplo.

& == GetPointer(). * - nada ha cambiado.

 
fxsaber:

Estoy muy interesado. Por favor, explique la respuesta del Service Desk con un ejemplo.

& == GetPointer(). * - nada ha cambiado.

¿Qué ejemplo necesita?
 
coderex:

si alguien está interesado, la respuesta es servicedesk:

На данный момент оператор *(dereference/indirection) можно использовать только для указателей на объекты классов и это rvalue
El otro día les envié una sugerencia sobre la introducción de punteros a cualquier tipo de datos. Y esta ridícula restricción es molesta.
 
Alexey Navoykov:
Por cierto, el otro día les envié una propuesta sobre la introducción de punteros a cualquier tipo de datos. Y esta ridícula restricción ya es molesta.
Sería bueno introducir la sobrecarga del operador *, porque sin ella no podemos realizar la identidad con STL, también sería bueno introducir typedef en su totalidad, no sólo en calback`i
 
coderex:
sería bueno introducir la sobrecarga del operador *, porque sin ella no podemos realizar la identidad con STL, también sería bueno introducir typedef en su totalidad, no sólo en calback`i
Sí, estoy de acuerdo. Todo está en un estado inacabado. Y en cuanto a las sobrecargas me interesa más el operador fantasma, es difícil prescindir de él.
 
coderex:
¿Qué tipo de ejemplo quieres?
Lo que quieres de * y &. Algo sencillo pero ilustrativo. Así que puedes ver la conveniencia.
 
fxsaber:
Lo que quieres de * y &. Algo sencillo pero ilustrativo. Para ver la conveniencia.

Lo que quiero ya lo he escrito más arriba.

Puedes inventarte un ejemplo con el operador '&' en el que uses GetPointer(...), es esencialmente una forma corta

El ejemplo con el operador '*' no sé si te ayuda a entenderlo:

class Iterator
  {
   int m_value;
public:
   Iterator(const int val) : m_value(val) { }
   int operator*() { return m_value; }
  };

int main(int argc, char **argv) {
   Iterator *_it = new Iterator(5);
  
   int _val = **_it;
//---
   return 0;
}


funciona en C++, pero en MQL tendrás que hacer un geter para obtener m_value.

 

Añadir a la ayuda que ChartRedraw(MainChartID) no es adecuado para redibujar OBJ_CHART. El ChartRedraw(ObjChartID) es necesario.

Por lo tanto, el ejemplo de la Ayuda es incorrecto.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_CHART - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Por favor, no limite la escala a N <= 5 (tamaño del área bajo la barra = 2^N).

Esto es necesario (y se ha convertido en algo conveniente) para poder mirar el historial de garrapatas con más detalle.

 
Por favor, aclárese. Guión
class A
{
public:
  const int a;
  
  A( int c = 0 ) : a(c) {}
  
  virtual int f()
  {
    Print(__FUNCTION__);
    
    return(this.a);
  }
};

class B : public A
{
public:
  const int b;
  
  B( int c = 0 ) : A(c), b(this.f()){}

  virtual int f()
  {
    Print(__FUNCTION__);
    
    return(this.a);
  }
};


void OnStart()
{
  B b;  
  A* a = new B;
  
  delete a;
}

Resultado

2016.10.18 09:35:01.981 Test14 (GBPUSD,M1)      B::f
2016.10.18 09:35:01.981 Test14 (GBPUSD,M1)      B::f

¿Cuál es la razón de que salga B::F y no A::f? El script está escrito de tal manera que f es llamado ANTES de que se ejecute el cuerpo del constructor (en negrita). Pero en este punto el constructor de la clase base A ya ha sido llamado. Por eso this.f() parece referirse exactamente a la clase base antes de llamar al constructor B. Por favor, explique dónde está el error de razonamiento/previsión.