错误、漏洞、问题 - 页 2743

 
Roman Agafonkin:

这就是问题所在,它没有回来......在MT4上它是好的......在MT5上 - 唉,它是小毛病...
好的,我将拍摄一段视频并将其添加到这个主题。

我在MT5(2361)上缩减规模后有一个缩进。
 
class Originator
  {
   int               state;
public:
   class Memento;
   Originator() : state(0){}
   Memento*          getMemento()      {return new Memento(&this);}
   void              setState(int s)   {state=s;}
   void              dumpState()       {printf("State: %i", state);}
///////////////////////////////////////////////////////////
   class Memento{
      int            state;
      Originator*    org;
      public:
                     Memento(Originator* mOrg):state(mOrg.state),org(mOrg){}
      void           restoreState() {org.state=state;}
   };
///////////////////////////////////////////////////////////
  };

为什么没有错误:不能访问私人成员?

 
Vladimir Simakov:

为什么没有错误:无法访问私人成员?

因为Memento是一个 相对于Originator嵌套/内部

 
Sergey Dzyublik:

因为Memento是一个 相对于Originator嵌套/内部

谢谢你。

 

错了。

class class_A
  {
   struct struct_1
     {
      int            my_secret_key;
     };

   void              Get_key()
     {
      struct struct_local
        {
         struct_1     st1;
        };
     };
  };
cannot access to private struct 'struct_1' declared in class 'class_A'  test3.mq5       24      10
   see declaration of struct 'class_A::struct_1'        test3.mq5       15      11
Билд 2430.
 
我再补充一下。
class A {};
struct B {
        struct A {};
        B() { ::A a; } //Error: 'A' - unexpected token
};
 
对开发者的建议。
请考虑在MQL中添加一个函数,允许用户从自定义代码中独立调用OnChartEvent 中的累积 "消息 "的处理。
1)这将允许在耗时计算的迭代之间调用OnChartEvent处理,使用户GUI至少有一定的响应,而不需要构建一个菜园子:任务池、数据传输、状态同步、上下文保存和恢复。
2) 这将允许在脚本中使用OnChartEvent。

谢谢。
 
Sergey Dzyublik:
MT5错误(build 2340)不能从指针对象访问默认的operator=。

谢谢你的留言。
纠正的是

 
Sergey Dzyublik:
对开发者的建议。请考虑在MQL中添加一个函数,允许用户从自定义代码中独立调用OnChartEvent中的累积 "消息 "的处理。1)这将允许在耗时计算的迭代之间调用OnChartEvent处理,使用户GUI至少有一定的响应,而不需要构建一个菜园子:任务池、数据传输、状态同步、上下文保存和恢复。2) 这将允许在脚本中使用OnChartEvent。谢谢你。




你是否建议添加GetNextEvent函数?
 
Ilyas:
你是否建议添加GetNextEvent函数?

包括TradeTransaction-events。


两个重载--Trade-Event,Chart-Event。