Errores, fallos, preguntas - página 1979

 
Andrey Barinov:
Gracias. Nunca he encontrado esto en la documentación. ¿Puede señalarlo?
Esta regla se le ocurrió a él mismo. La documentación dice:

En consecuencia, sólo (y únicamente) se puede acceder a testfunc() desde cA:: methods -> en este caso desde cA::test()

 
A100:
¿Y has intentado compilar este ejemplo en C++ - o es sólo un razonamiento teórico general?

¿Has probado a seguir el enlace? No sólo se puede compilar allí, sino también ejecutar el ejemplo con éxito.

 
Stanislav Korotky:

¿Has probado a seguir el enlace? No sólo se puede compilar allí, sino también ejecutar el ejemplo con éxito.

¿Por qué entonces ese código no funciona?

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);
  }


No veo ninguna diferencia entre (1) y (2).

 
Stanislav Korotky:

¿Has probado a seguir el enlace? Allí no sólo se puede compilar, sino también ejecutar con éxito un ejemplo.

Estamos discutiendo el código específico dado arriba. Si no lo has probado, escribe
 
Andrey Barinov:

¿Por qué entonces este código no funciona?

Ahora el 2º teórico te dará otra regla, no menos vaga que la primera

Propongo simplificar el código al límite

 
A100:
El código específico anterior está en discusión. Si no lo has probado, escríbelo así

Es el código anterior el que se ha ajustado a la sintaxis de C++ -en realidad se ha dejado uno a uno en el contexto de la discusión sobre el acceso a miembros privados- y ese código funciona. Esta era la respuesta a la pregunta de por qué funciona en MQL. ¿Qué más necesitas? ¿Qué más quieres que pruebe? No escribas tonterías tú mismo.

 
Stanislav Korotky:

Fue el código anterior el que se ajustó a la sintaxis de C++ -de hecho se dejó uno a uno en el contexto de la discusión sobre el acceso a miembros privados- y ese código funciona. Esta era la respuesta a la pregunta de por qué funciona en MQL. ¿Qué más necesitas? ¿Qué más quieres que pruebe? No escribas tonterías tú mismo.

Puedes postearlo aquí y comparamos cómo lo has arreglado entonces (no voy a los enlaces de los sitios de la izquierda). Si no sabes comunicarte con normalidad - (me refiero a las tonterías) no escribas

 
Andrey Barinov:

¿Por qué entonces este código no funciona?


No veo ninguna diferencia entre (1) y (2).

Se trata de un error de MQL. Funciona en C++. Escriba al servicio de atención al cliente.

 
Stanislav Korotky:

Se trata de un error de MQL. En C++ funciona. Escriba al servicio de atención al cliente.

Lo tengo. Gracias.

Es que es interesante en el segundo ejemplo. cB no sabe nada sobre m_var y m_func y no están disponibles para él (es decir, no pueden ser llamados desde dentro de cB), mientras que pueden ser llamados desde otros objetos...
 
A100:

Publícalo aquí y comparemos entonces cómo lo retocaste (no sigo los enlaces a sitios de izquierda). Si no sabes comunicarte con normalidad - (me refiero a las tonterías) no escribas.

No sea grosero. Fuiste el primero en empezar a comunicarte de forma anormal aquí.

Todo Internet está formado por sitios de izquierda. ¿Cómo se puede utilizar?

Este sitio en particular y muchos otros como él simplifican significativamente la vida de los programadores (lo que les permite probar fragmentos, http-solicitudes, comprobar los sitios de mapeo, etc.) - cómo tratarlos depende de cada uno - no quieren no utilizar, pero no ir en otros sobre él para atacar.

Razón de la queja: